1 00:00:00,270 --> 00:00:02,240 Hello everybody and welcome back. 2 00:00:02,460 --> 00:00:07,630 And let us now add the download and upload function to our reverse shout. 3 00:00:07,860 --> 00:00:17,250 So let us actually first of all to our server since we last time we did first the reverse shell. 4 00:00:17,250 --> 00:00:20,280 So right now let us actually code the part of our server. 5 00:00:20,360 --> 00:00:28,220 We'll have we'll have to add both of these functions in the both server and both our shell so they will 6 00:00:28,220 --> 00:00:29,620 perform three separate tasks. 7 00:00:29,630 --> 00:00:36,300 So for example if I send a download command the target. 8 00:00:36,340 --> 00:00:40,990 That means if we want to get the file from the target so the target will have to open that file and 9 00:00:40,990 --> 00:00:46,540 read the its contents and send its content back to us and we will have to write those contents that 10 00:00:46,540 --> 00:00:51,430 we receive back to a file on our own our own clinic's machine. 11 00:00:51,520 --> 00:00:53,350 That means the same. 12 00:00:53,350 --> 00:00:56,000 Just reverse function for the upload command. 13 00:00:55,990 --> 00:01:01,690 So then we as the Clinton machine will have read the file and send the file contact back to the Target 14 00:01:01,690 --> 00:01:09,100 B C and Target B C we'll have to write to a pile that it will create on the target machine so let us 15 00:01:09,100 --> 00:01:17,160 start off by coding it on our server what we want to do is add another L if statement right here. 16 00:01:17,160 --> 00:01:23,970 So l if and let's actually use our simple use of the command so we will do will just upload and download 17 00:01:24,060 --> 00:01:26,190 as the command for downloading defaults. 18 00:01:26,220 --> 00:01:32,130 So in our server side we will just have to specify download so the empty space and then the path to 19 00:01:32,130 --> 00:01:35,090 the file we want to download or the name of the file. 20 00:01:35,220 --> 00:01:37,890 So let's start off with the Download. 21 00:01:37,920 --> 00:01:45,760 So else if command that we specify and let us count the letters of the download. 22 00:01:45,760 --> 00:01:47,710 So it has eight letters. 23 00:01:47,710 --> 00:01:55,270 So if the first data the letters of the commands are download which basically means this part right 24 00:01:55,270 --> 00:02:04,390 here so equals equals download then that's what our server wants to do is it wants to actually open 25 00:02:04,390 --> 00:02:11,530 the file with the same name as the file that we want to download and we have to wait for the target 26 00:02:11,530 --> 00:02:17,230 to send us back the contents of the file that we want to download and then that content that we receive 27 00:02:17,260 --> 00:02:19,170 we will rise to our file that we open. 28 00:02:19,200 --> 00:02:24,550 So we will use syntax for opening files which is a little bit different than the one we covered in the 29 00:02:24,550 --> 00:02:27,010 basics but it is basically it means the same. 30 00:02:27,010 --> 00:02:34,380 So with open and what we want to open is the name of the Father to specify in the part. 31 00:02:34,410 --> 00:02:42,810 So with open command and then the nine and then on to the end of the command which basically means so 32 00:02:42,810 --> 00:02:46,910 let's say the command is let me just type it right here. 33 00:02:47,010 --> 00:02:58,320 So let's say the command is download image or dot J Peck for example or let's say text not the key the 34 00:02:58,360 --> 00:02:59,320 first eight letters. 35 00:02:59,320 --> 00:03:04,090 This will check if the first eight letters of the command is download then it will proceed with this 36 00:03:04,090 --> 00:03:08,590 command and then it will open a file with the name from the ninth character. 37 00:03:08,590 --> 00:03:14,650 So first date or download the ninth character is the empty space and then promote it fill open a file 38 00:03:14,650 --> 00:03:17,230 with this name which is what we want. 39 00:03:17,230 --> 00:03:23,330 So right now let us delete this and specify the name of the file. 40 00:03:23,360 --> 00:03:31,760 So we open from 9 character we want to write to it since we are the server we want to write to that 41 00:03:31,760 --> 00:03:34,130 file as soon as we receive its contents. 42 00:03:34,280 --> 00:03:35,540 We can name it as file. 43 00:03:35,540 --> 00:03:39,260 So this is basically the same as this command right here. 44 00:03:39,260 --> 00:03:47,130 So file equals open command nine from right. 45 00:03:47,160 --> 00:03:52,790 B This is the same command as this one I just wanted to use this index to show you that you can use 46 00:03:52,850 --> 00:03:57,140 something like this as well so you can use whatever you want. 47 00:03:57,350 --> 00:03:58,710 I will use this one. 48 00:03:58,820 --> 00:04:04,880 Now you might be asking since we didn't cover what is this W B this b basically stands for bytes. 49 00:04:04,880 --> 00:04:06,290 Now why are we using bytes. 50 00:04:06,290 --> 00:04:11,430 Well basically since we want to receive the contents of the file in bytes. 51 00:04:11,450 --> 00:04:17,180 So if we didn't specify this we would for example only be able to download the text files and we will 52 00:04:17,180 --> 00:04:21,030 not be able to download the executable as images and other files. 53 00:04:21,110 --> 00:04:26,690 We want to be able but we want to do that so we want to be able to download any executable from Target 54 00:04:26,690 --> 00:04:34,430 B C any image for Target B C any song from Target b c that's why we specified right here WB so we open 55 00:04:34,430 --> 00:04:40,660 it as file that is the name of our variable which rebel or basically or not all of our file. 56 00:04:41,090 --> 00:04:48,830 And here we want to tab it in a little bit and right now we want to proceed actually the contents of 57 00:04:48,830 --> 00:04:52,830 the file so we will just name it the same as here. 58 00:04:52,910 --> 00:04:53,690 We will name it. 59 00:04:53,720 --> 00:04:57,470 The result the same as in the previous command. 60 00:04:57,470 --> 00:05:04,370 So let me just show you right here what we need to type what we want to type is the same as this. 61 00:05:04,370 --> 00:05:08,990 So the result equals reliable underscore receive. 62 00:05:10,010 --> 00:05:15,700 So what this will do is basically it will let us perceive all the contents of the file and those contents 63 00:05:15,710 --> 00:05:17,630 we want to write to a file. 64 00:05:17,630 --> 00:05:25,820 Now in order for our file not to crash we need to use a library called base64 the base64 library allows 65 00:05:25,820 --> 00:05:33,590 us to actually encode or decode the encoded base64 data and actually write it to a file. 66 00:05:33,600 --> 00:05:35,060 Now I will show you what they mean. 67 00:05:35,060 --> 00:05:39,030 So first of all file dot right type. 68 00:05:39,110 --> 00:05:40,780 Right here we know this command. 69 00:05:40,790 --> 00:05:50,660 We covered it and then we want to use base64 dot Base64 decode and then we want to decode the result 70 00:05:50,660 --> 00:05:55,460 that we received and then put the two brackets right here. 71 00:05:55,470 --> 00:06:00,810 Now you might be asking why are we decoding something that we didn't even encode yet. 72 00:06:00,810 --> 00:06:04,920 Well we will encoded in the part of the reverse cell code. 73 00:06:05,010 --> 00:06:11,910 So basically in our reversal code once we get the download function we will actually first encode the 74 00:06:11,910 --> 00:06:17,820 data of our file and then send it to our server then the server will receive it and then it will write 75 00:06:17,880 --> 00:06:23,010 the file that it will write the decoded data of our result. 76 00:06:23,010 --> 00:06:28,740 So this is basically everything we have we need to specify right now. 77 00:06:28,830 --> 00:06:37,730 Basically we can add the upload function right now but before we do that let us actually add the download 78 00:06:37,730 --> 00:06:39,130 function to our reverse shell. 79 00:06:39,140 --> 00:06:42,860 So you can compare these two and then it will make a lot more sense to you. 80 00:06:43,700 --> 00:06:46,490 So we will open it like this. 81 00:06:46,490 --> 00:06:52,060 Then we will open another window and lasted a little bit. 82 00:06:52,080 --> 00:07:00,210 So we can make it this big go through our Python reverse and now reverse show 83 00:07:03,260 --> 00:07:06,440 in the show part we want to basically perform a similar thing. 84 00:07:06,430 --> 00:07:14,460 So just go right here below the Sydney comment right. 85 00:07:14,580 --> 00:07:18,250 Another L if statement the LV statement will be the same. 86 00:07:18,250 --> 00:07:25,720 So else a command from the from the to the eighth letter. 87 00:07:25,710 --> 00:07:33,450 So we want to specify to the eighth letter equals equals download what we want to do then is basically 88 00:07:33,450 --> 00:07:38,910 right here we want to actually open the file since it is on target b c and the reverse shall will also 89 00:07:38,910 --> 00:07:39,870 be a target b c. 90 00:07:40,170 --> 00:07:48,000 So what we want to do is basically just write with open with open open brackets command and then the 91 00:07:48,000 --> 00:07:51,660 same as right here as in the server code. 92 00:07:51,660 --> 00:07:55,760 But the difference right here is we want to open it for reading since it is our file. 93 00:07:55,760 --> 00:08:02,730 We want to read from it then put the contents that basically send the contents of the reading file to 94 00:08:02,730 --> 00:08:03,950 the server. 95 00:08:04,380 --> 00:08:06,850 So read bytes. 96 00:08:06,990 --> 00:08:07,800 Can we open it. 97 00:08:07,800 --> 00:08:09,570 Same as file. 98 00:08:09,570 --> 00:08:12,020 So it makes more sense. 99 00:08:12,090 --> 00:08:16,640 We have it this in and we want to reliable send the encoded data. 100 00:08:16,920 --> 00:08:25,470 What we will do is we will use base64 and instead of base64 decode we use here base64 encode and what 101 00:08:25,470 --> 00:08:29,940 we want to send we are sending the contents of the data which we can get with this function. 102 00:08:29,940 --> 00:08:35,520 So file dot freed and then we closed three brackets or two brackets. 103 00:08:35,520 --> 00:08:36,420 Let me just see 104 00:08:39,660 --> 00:08:40,140 yeah. 105 00:08:40,240 --> 00:08:46,960 We actually closed three brackets right here so let us compare these two so it can make actually more 106 00:08:46,960 --> 00:08:48,340 sense. 107 00:08:48,340 --> 00:08:53,200 First of all let's go to the server the server sends the download and then the path to some file or 108 00:08:53,200 --> 00:08:59,290 basic more basically the service and download and then the name of some file then where the command 109 00:08:59,320 --> 00:09:05,980 gets sent to the reverse shell the reverse shell opens that file for reading it reads it contents contents 110 00:09:06,040 --> 00:09:11,740 it includes the contents of that file and sends the contents back to the server the server receives 111 00:09:11,740 --> 00:09:18,070 the contents of the file into this variable right here and it has to be called the contents first before 112 00:09:18,070 --> 00:09:19,460 writing is to a file. 113 00:09:19,570 --> 00:09:21,760 So we use the function within a function. 114 00:09:21,760 --> 00:09:29,110 So this function in the brackets will get executed first and then we will write the decoded result to 115 00:09:29,170 --> 00:09:33,100 our file so simple as that. 116 00:09:33,190 --> 00:09:35,490 Let us save both save. 117 00:09:35,570 --> 00:09:42,100 Basically let the save both of these so control and then write here also control. 118 00:09:42,450 --> 00:09:46,330 Then what we want to do right now is also add the upload function. 119 00:09:46,330 --> 00:09:48,460 So we want to upload the files as well. 120 00:09:48,460 --> 00:09:50,210 Let's start off with the server. 121 00:09:50,290 --> 00:09:53,650 So let's add another if statement. 122 00:09:53,650 --> 00:10:03,740 Else if command and then first six letters since that's come up how much chocolate has that equals upload. 123 00:10:08,280 --> 00:10:12,480 Or do you want to do is basically just find this. 124 00:10:12,570 --> 00:10:12,850 OK. 125 00:10:12,860 --> 00:10:14,400 So we want to actually 126 00:10:17,260 --> 00:10:24,490 what we want to do is we want to actually run try and accept rule now why we are writing try and accept 127 00:10:24,490 --> 00:10:29,920 rule is basically sometimes maybe some file won't be able to get downloaded or uploaded. 128 00:10:29,920 --> 00:10:38,720 So we want to actually first of all let us try to open it file since we are right now on the server 129 00:10:39,020 --> 00:10:42,530 we want to open that file for reading so we could send its contents. 130 00:10:42,590 --> 00:10:47,920 So with open and then we perform the same thing. 131 00:10:47,930 --> 00:10:50,860 So command and then from seventh letter. 132 00:10:50,900 --> 00:10:56,180 The reason why we're choosing from seventh letter is because upload and empty space add to the seven 133 00:10:56,510 --> 00:10:59,280 and everything after that will be the name of the file. 134 00:10:59,480 --> 00:11:04,280 And then reading since we are right now on the server and we are not uploading we want to read this 135 00:11:04,280 --> 00:11:07,760 file in bytes and let's call it as Fin. 136 00:11:07,760 --> 00:11:13,130 So this will be the name of our file then what we want to do is perform the same function as in the 137 00:11:13,130 --> 00:11:15,420 previous so reliable send. 138 00:11:15,980 --> 00:11:28,860 And we want to encode the data base64 base64 encode Green Dot create loops are missing a bracket. 139 00:11:29,210 --> 00:11:33,010 But just like this you can see a little bit better 140 00:11:35,840 --> 00:11:41,660 so here is what we are doing is basically opening a file for reading and then setting sending it's encoded 141 00:11:41,660 --> 00:11:42,410 data to their 142 00:11:45,400 --> 00:11:48,280 now in order for us to actually be able to. 143 00:11:48,490 --> 00:11:52,840 Let me just go to the back of this. 144 00:11:53,510 --> 00:11:59,120 In order for us to we actually be able to know if the file was successfully downloaded let's actually 145 00:12:01,530 --> 00:12:03,710 add something a little bit different right here. 146 00:12:03,720 --> 00:12:14,120 So let's let's head and accept rule so accept and we will actually add a variable called Field and let's 147 00:12:14,240 --> 00:12:16,340 actually print that are able to be windows. 148 00:12:16,340 --> 00:12:21,560 Does it really matter just print anything you want that variable so you know that it actually failed 149 00:12:21,560 --> 00:12:29,990 to download a file so failed to upload Artemis not download failed to upload and we want to actually 150 00:12:30,110 --> 00:12:47,780 reliable send base64 not be at 64 encode and then we want to basically send the failed variable to these 151 00:12:47,840 --> 00:12:50,710 targets or failed. 152 00:12:50,720 --> 00:12:58,110 Now the reason why we're doing this is basically if you miss type a name of the file and then set it 153 00:12:58,150 --> 00:13:03,230 to real hand it will basically break the connection since it will try to open a file on your calendar 154 00:13:03,290 --> 00:13:05,660 machine which doesn't even exist. 155 00:13:06,050 --> 00:13:10,880 So it will try to upload a file to the target system that you don't have in your directory and it will 156 00:13:10,880 --> 00:13:14,730 hang on the connection and you will not be able to execute anything else. 157 00:13:14,780 --> 00:13:19,520 So we want to send this and it will basically write to the target this and we will know that the file 158 00:13:19,550 --> 00:13:20,880 failed to download now. 159 00:13:20,930 --> 00:13:26,030 Then we can actually specify the correct name and read the file that actually contains this string failed 160 00:13:26,030 --> 00:13:27,120 to download. 161 00:13:27,200 --> 00:13:32,990 Now since we added this on the upload since we added the upload function to the server we want to also 162 00:13:32,990 --> 00:13:36,800 add the upload function to do the reverse shall not be white. 163 00:13:37,040 --> 00:13:39,920 So let us do the same. 164 00:13:40,100 --> 00:13:41,130 We want to add. 165 00:13:41,210 --> 00:13:49,370 If command from the sixth letter so to pardon me to the six letter equals equals upload 166 00:13:52,500 --> 00:13:58,500 we want to open a file for writing since we are receiving the contents. 167 00:13:58,500 --> 00:14:12,510 So with open command seven from as writing bytes as fin so name it the same as in the server code so 168 00:14:12,510 --> 00:14:15,200 you can actually know what it is referring to. 169 00:14:15,300 --> 00:14:20,940 It makes more sense than what we want to do is basically result equals reliable. 170 00:14:20,970 --> 00:14:28,970 Steve we are receiving the information of the file and we want to write the decoded part of the file. 171 00:14:28,980 --> 00:14:41,280 So call right base64 base64 loops decode and then the result is decoded. 172 00:14:41,290 --> 00:14:42,240 So result 173 00:14:46,060 --> 00:14:48,300 so let me just check if this is it. 174 00:14:48,310 --> 00:14:50,640 Let's try to save it first. 175 00:14:50,650 --> 00:14:52,120 So here let us check. 176 00:14:52,120 --> 00:14:57,610 We open a file for reading and then we said send its contents here we receive its contents and then 177 00:14:57,610 --> 00:15:00,310 we write to the file the 178 00:15:02,870 --> 00:15:03,800 decoded content. 179 00:15:03,800 --> 00:15:05,100 So this should be good. 180 00:15:05,330 --> 00:15:12,560 If the file fails to open or if we specify a wrong end to the file it will write failed to upload the 181 00:15:12,950 --> 00:15:16,390 file that we download that we upload to deliver a show. 182 00:15:16,520 --> 00:15:18,450 So let us see if this will work. 183 00:15:18,470 --> 00:15:22,140 We save both of this. 184 00:15:22,730 --> 00:15:23,540 I hope it works. 185 00:15:23,540 --> 00:15:25,010 So let us just. 186 00:15:25,010 --> 00:15:30,650 We do not need two terminals anymore but this enlarge this one and let us compile our program. 187 00:15:30,650 --> 00:15:35,720 So let's just search for the command. 188 00:15:36,310 --> 00:15:37,300 Here it is. 189 00:15:37,300 --> 00:15:46,760 We compiled the report shall and I just remembered that we actually had the debate 64 library to both 190 00:15:46,760 --> 00:15:57,610 of our programs so we have to actually delete all of this so deleted before we actually compile it again. 191 00:15:57,620 --> 00:16:03,290 Now let's actually add it first to the river shall not be why we have to add the base 64 libraries so 192 00:16:03,320 --> 00:16:08,180 import base 64 we save. 193 00:16:08,390 --> 00:16:15,440 We also have the same to the server import base 64. 194 00:16:15,440 --> 00:16:18,230 Now let's see if we used another library that we need to import. 195 00:16:18,230 --> 00:16:19,730 I don't think so. 196 00:16:19,730 --> 00:16:22,440 We only use the base 64 libraries to save. 197 00:16:22,470 --> 00:16:27,970 And right now we can compile it once again and we should be good to go. 198 00:16:28,080 --> 00:16:31,600 While this is compiling let us plug in our USP drive 199 00:16:38,550 --> 00:16:42,810 and now let us copy the reverse shell to the U.S. speed right. 200 00:16:42,810 --> 00:16:46,370 So let's move reverse shell to the media. 201 00:16:46,370 --> 00:16:48,010 Would you be right. 202 00:16:48,120 --> 00:16:50,970 Remove the shell and we delete everything else 203 00:16:54,180 --> 00:16:56,560 we can run the server right away. 204 00:16:56,670 --> 00:16:59,520 Listening for incoming connection so we listening. 205 00:16:59,640 --> 00:17:05,830 We unplug them as we drive and we open it in our windows machine right now. 206 00:17:05,910 --> 00:17:09,390 Let us copy the file and let us run the file 207 00:17:15,300 --> 00:17:16,910 the file executed. 208 00:17:16,910 --> 00:17:21,720 And right now let's wait for a few seconds in order to receive the connection back. 209 00:17:21,730 --> 00:17:26,770 Now what we will try to do is we will try to download this image right here which is the master ethical 210 00:17:26,770 --> 00:17:27,620 hacking. 211 00:17:28,330 --> 00:17:31,220 Let's rename it so we can specify the entire name. 212 00:17:31,270 --> 00:17:31,810 Let's name it. 213 00:17:31,810 --> 00:17:40,540 Just hacking or hacking Doug pack and we can see if we are if we are going to be able to successfully 214 00:17:40,540 --> 00:17:44,400 download this image from our target system. 215 00:17:44,410 --> 00:17:48,340 So here we have the the shell open. 216 00:17:48,370 --> 00:17:50,310 So let's see who am I. 217 00:17:50,360 --> 00:17:52,820 Now let's type there to see the desktop. 218 00:17:52,900 --> 00:17:55,600 Here we have this hacking the jetpack. 219 00:17:55,610 --> 00:17:57,240 Now let's actually tried to download. 220 00:17:57,250 --> 00:18:05,530 So let's use the function download hacking called J PAC if I press here enter we can see that it executed 221 00:18:05,560 --> 00:18:06,360 normally. 222 00:18:06,440 --> 00:18:08,750 And let's see if we can actually still execute the command. 223 00:18:08,750 --> 00:18:11,000 So the outer shell is still running. 224 00:18:11,020 --> 00:18:14,250 Now let's see where did we download our function. 225 00:18:14,390 --> 00:18:16,330 Part of me our image. 226 00:18:16,330 --> 00:18:17,800 So let's go to our files 227 00:18:21,330 --> 00:18:26,730 we open our files or just go to our places not files so places. 228 00:18:26,730 --> 00:18:27,540 Computer 229 00:18:30,060 --> 00:18:33,570 what tasks that that should be in the root directory. 230 00:18:34,680 --> 00:18:42,480 And then we go to the Python files and just find where they are python programs reverse. 231 00:18:42,510 --> 00:18:48,600 And here we have the hacking that JPEG image we successfully were able to download it from the Target 232 00:18:48,600 --> 00:18:49,960 B C. 233 00:18:50,070 --> 00:18:54,690 Now we do not need to download only the the JPEG files. 234 00:18:54,690 --> 00:19:01,530 We can also try to create the file on Target B C so let us clear the screen look less clearly screen 235 00:19:01,650 --> 00:19:07,500 is not the same as in the Linux so that we just type once again we are the desktop directory. 236 00:19:07,500 --> 00:19:20,420 Now let us echo hello world into the desktop the steam and we type here once again and let us see if 237 00:19:20,420 --> 00:19:22,200 we actually echo the good things. 238 00:19:22,200 --> 00:19:25,320 So test that the 60. 239 00:19:25,340 --> 00:19:28,090 Here it is Halo world. 240 00:19:28,100 --> 00:19:36,870 And now let's try to also download a text file so download has to go to extreme it finished really fast. 241 00:19:36,880 --> 00:19:42,460 Right now we can delete the text of the Steve from our target since we don't need it there anymore as 242 00:19:42,460 --> 00:19:49,030 we can see we successfully deleted it with Dell desktop the extreme and right now if I just close this 243 00:19:49,060 --> 00:19:55,330 and open the places once again and I want to see if we successfully downloaded the text file as well 244 00:19:58,020 --> 00:20:04,480 so let's go once again to the root python programs and the reverse. 245 00:20:04,480 --> 00:20:05,790 Here's the test of the. 246 00:20:05,790 --> 00:20:10,350 We open it and in the text of the 60s we have a string Hello World. 247 00:20:10,350 --> 00:20:12,090 So everything works fine. 248 00:20:12,090 --> 00:20:17,930 We did download comment so we now know that it just see what it does. 249 00:20:18,030 --> 00:20:24,690 We now know that we can successfully download files from Target B C whether they are j peg P G text 250 00:20:24,900 --> 00:20:28,100 dot EMC or basically any other file format. 251 00:20:28,200 --> 00:20:34,290 But right now what we want to check is if the upload function works as well in order for us to upload 252 00:20:34,290 --> 00:20:38,670 a file we need to specify we need to make a file so let us open 253 00:20:41,630 --> 00:20:49,270 another term and also that we just click right here open a different terminal and large this a little 254 00:20:49,270 --> 00:20:54,610 bit while our show is running in the background so C.D. python programs reverse. 255 00:20:54,610 --> 00:21:00,730 Make sure to have a file in the same directory as our reverse is our server that is running. 256 00:21:00,730 --> 00:21:05,500 So first of all we want to delete this test that the steal and hacking since we don't need it on our 257 00:21:05,980 --> 00:21:07,280 director right here. 258 00:21:07,300 --> 00:21:16,670 Now let us nano simple string files so we will call it call it shallow that the extreme loops that exceed. 259 00:21:17,080 --> 00:21:22,810 And here here we will type out is your day going. 260 00:21:22,930 --> 00:21:25,120 We will save it. 261 00:21:25,120 --> 00:21:25,690 We have here. 262 00:21:25,690 --> 00:21:26,140 Hello. 263 00:21:26,290 --> 00:21:34,680 The we can close this right now and let us try to upload below that the sleep we presenter would check 264 00:21:34,710 --> 00:21:40,000 if our shell is still running it's running good it executes the commands we go to our desktop and we 265 00:21:40,000 --> 00:21:41,520 can see a file called Hello. 266 00:21:41,530 --> 00:21:46,450 That's the extent that we successfully upload it and it contains the string that we specified in our 267 00:21:46,450 --> 00:21:48,070 clinics machine. 268 00:21:48,070 --> 00:21:53,830 Now this file can also be either image or executable or basically you can upload a different virus or 269 00:21:53,830 --> 00:21:56,610 malware on anything you want with our rivers show. 270 00:21:56,650 --> 00:22:03,550 It doesn't have to be at the files so it's deleted and right now what we have is a fully working reversal 271 00:22:03,850 --> 00:22:10,000 that can upload download commands that has a persistent running that has self copied it and then basically 272 00:22:10,000 --> 00:22:16,750 performs all the system commands and also performs the connection every 20 seconds. 273 00:22:16,750 --> 00:22:22,750 So we have a political reversal for now but we will also try to add some other functions as well to 274 00:22:22,750 --> 00:22:23,410 it. 275 00:22:23,410 --> 00:22:25,440 So that would be about it for this tutorial. 276 00:22:25,450 --> 00:22:28,960 I hope you enjoyed it and I hope I see you in the next one by.