All right, let's get started today. So for those that I haven't seen, so the first homework assignment is up on the website.  OK, so assignment one is going to be due in two weeks before midnight. The first part is incredibly easy. You should have already done this. That should be the easiest 10 points you get in this class. Sign up for the mailing list. Hey, easy 10 points. All right. OK, so the other parts are intended to help you go through some of the stuff we've talked about in class to reinforce some concepts, to make sure you have the skills necessary to be successful in this class. So the first part is you're going to make a program that emulates some of the functionality of the Morris Worm. So it is not the propagation. So the key part of the propagation of the Morris Worm was A, that it had remote code exploitations in SendVail and the FingerData. But it also leveraged the trust between hosts on the network. So it would look for trusted hosts in the network and then use to try to leverage that trust in between them to propagate itself. So you're going to write a program that actually does this discovery or tries to identify these trust issues on a host. So when your programs run, it's going to basically output a list of all the host names known and that are possibly trusted by the currently executing hosts. So it'll be a single executable called discovery. The interface is very simple. You're going to run it. And it's going to look in the locations we've specified to look for new hosts, new and potentially trusted hosts. And you're going to output it one per line. The order doesn't matter. And note that we're specifically looking for host names. Because I think not IP addresses. So host names, in my mind, they're a little bit more likely to be trusted, right, if you've given them a name rather than just an IP address. OK, so here's the four places you'll be looking. ETC hosts, SSH configs, authorized keys, and known hosts. So how do you know how to extract host information from these files? You're using a set of letters of auth. Yeah, but how do you know what to set or rep or auth for it? You mean look into those and see the format of them. Yeah, so I would even say it's not exactly in the files themselves, right? You're looking at the documentation. So this is exactly why I provided links here to all these things, right? What is the specification say a host's file should look like? What are the host names in the host file? So you'll have to write parsers for each of these things to parse and extract the relevant information from each of these file formats. So other things to do, right? So here we want to get the SSH config for each user. Why do we want to do it for each user? Yeah, we want to try and find as many things as possible to try and find as many potentially trusted hosts. How do you find out all the users on the system? So that's true. Hm? Flash users, are they always going to be in there? You can look in like EDC password and... Yeah, you should look in the EDC password file, right, to see users and then you can see the home directory for all the users from there and use that information to then find everybody's config file, author's key, and not a host file. I mean, kind of debated even putting this line in there, but I guess it's better to be explicit, right? You must handle permissions correctly. Your program should not crash just because it can't access a certain user's SSH config file, right? So you should... You know, this is about... You're trying to write a worm, right?  You want it to run undetected and be very stealthy, right? So crashes attract attention. So we want to have as few crashes as possible. Questions on the goal of this part? So by handling the permission, do you mean the permission that has been set in EDC password file? Yeah, exactly. So... I just mean, handle permissions correctly doesn't crash when you can't read a file or something, right? Or don't have permissions in a directory to read that directory. So that's up to you to make sure that your program is robust, because these are things we're going to check for. Okay. But the... Well, there's a lot of different operating systems out there, so it could be, you know, BSD may do things differently than Linux, which may do things differently than, I don't know, any other UNIX derivative. So we're going to standardize on Ubuntu 14.04.64 bit. So this is going to be our test system and our environment for these assignments and all other assignments and hacking exercises in the course. So if you don't have access to one right now, you should set up a virtual machine to be able to test and develop these things. So program languages, I don't really care what language you write this program in. It can be in whatever you want. Your programs will run on a default version of Ubuntu 14.04.64 bit with the default packages installed. This is a little bit about if you want to use additional packages that aren't installed by default, like, let's say you want to write a Haskell program, which would be really cool. Somebody wants to do that. Then you need to include the GHC, the Haskell compiler, in your packages file, and the submission system will automatically install these packages for you before it runs and tests your program. You also, so submission instructions. So you need to submit your code. You'll need to submit a make file and a readme. So the readme is very simple. It should just contain your name, your ASU ID, the description of how your program works, right? Simple standards for courses. The make file. So who has experience with make files? Everyone who doesn't is, I guess, the opposite of that. Yeah. Who doesn't have experience with make files? All right. Cool. So you're going to learn stuff in this course. Awesome. All right. So I've tasked PSI with finding some resources. So we'll put resources on here for links to learn about make files. Just a series of steps to how to compile your program. At the end result, you should have an executable file called discovery. Whether that's an actual executable file or a shell script that executes your file correctly, whatever, doesn't really matter as long as it works. So this is the interface that you have to specify, right? So what we're going to do to test it is we're going to set up the environment in certain ways, run your program, and compare what you output to that testing environment. Questions on the first part? Yes. How are we going to populate those? Because we're going to install a clean version called we're doing a chance to do this assignment, right? Probably those, what you call, those files are not populated. So we need to populate them, right? So how do you test your software? I need to populate this part. You already test cases, right? So part of that is under, so that actually helps you know because that tests various things. You can say, put a host file in EDC host. You can put host names there. Make sure your program correctly detects those. Then you can put additional host names. There's other optional host name fields in there, right? To test that. So, you know, this will be good for you to test that. You will have... It's not set up yet. Hopefully by Wednesday I'll have it all set up. But there will be an online submission system that will get it and then get feedback about what test cases you're passing and not passing. You'll know right away exactly what your grade is. So that should help. It would be a one-time submission or... It would be a one-time submission or you can submit as many names. Definitely not one time. I don't know. I'm willing to entertain thoughts or arguments. The problem is I don't want people to just submit, make one code change, submit, make a code change, submit, make a good thing, submit. This happens. I'm not to disparage any of you good people. But people in previous classes have done that. So, you know, and this... We have machines that are constantly compiling, testing, all that kind of stuff. So, if the queue fills up with all your submissions then other people, if there's a delay between when they submit, right, then we have a problem. I'm not willing to giving a limit but a higher limit, like maybe 10 or 15 submissions, something like that because I think that would be reasonable because I would give... And I will... The other thing I'll definitely do is I'll let you do an unlimited number of smoke tests which just submit and compile to make sure it actually compiles correctly because that's a key thing, right? So, you don't want to burn your submissions by... If you want the submissions to test the actual functionality, not just if your thing doesn't compile, because your make file didn't make the file executable or something like that. Okay, so the questions over here? Yeah. The one you have mentioned that this could be, that could be executed with, if we write the code in a chance script then still that make file is relevant because that is going to execute great files. Yes, so you got your show scripting and you got your make files do nothing in that case, but you still have to have a make file. The idea is I want standard interfaces to take your code from source code to executable, so, yeah. So the make file will have the executable like now slash in this code you are... Make file is just a file and then you call make, you run the make command in that directory and it has to make sure that there is a file called discovery and that discovery is executable. Other questions? Comments? Cerns? So, the second part of the last, I guess the last part, I think it was the second part because you are going to make the list. You should be doing that already. Okay, the idea is you are a hacker when you break into a system, right, so you use certain vulnerabilities to get in, but, you know, if you want to come back to that system at a later point in time, you maybe don't want to re-exploit those same vulnerabilities over and over because what if they update the operating system or what if, I don't know, maybe that's more noisy and they are more likely to be discovered. So you are creating a web server in quotes. So this will be a real web server, so you will implement the minimal amount of functionality for the HTTP 1.1 spec. But it will be this web server will actually be a backdoor that will allow you to execute commands remotely on that machine. So why are web servers really good as backdoors? The ports are really popular? Yeah, port 80, what are the ports? 80 and port 43 is HTTPS, right? So, almost every firewall in existence will allow access to or from those ports because, you know, web traffic makes up the bulk of the volume of traffic, right? So yeah, that's definitely one reason or some other reasons. I guess they are all kind of related, right? So yeah, the network administrators looking at traffic and they see a bunch of connections on a weird port like, I don't know, 1-3-3-7 or something like that, right? Like that's very suspicious and you're going to look at that very closely to understand what's going on. Try to see port 80, port 43 traffic. Yeah, whatever, and there's a lot of content that can be over there, right? Like streaming services, all kinds of things use HTTP, so they may not even look very closely at the traffic, so that's the idea. So yeah, it's not going to raise any red flags and it's going to, you know, can use very dedicated, very simple ports. Okay, so what you're going to do is create an HTTP 1.1 server. You'll have to do this, you'll have to look at and read the RFC. So why is reading RFCs important to this class? Yeah, so you have to, well, understand how it works. Yeah, so sometimes the best resource for something, like you want to learn more about IP, or you want to learn more about DNS. Yeah, you can read the Wikipedia page, but if you read this spec, you'll understand much more in depth about the spec. So what's the point of RFCs? Yeah, so the idea is, right, people want to write web servers, people want to write web clients, we have to define a proper protocol and interface to do this, otherwise they'll be able to write software that communicates and interoperates correctly. So you can, so part of the goal is to read this, and yes, it's an incredibly long document, right? It describes all of HTTP, but it's from, you know, 1999. So part of the goal is, right, to go through here and understand, okay, what's relevant, what do I actually, what do I have to implement, and what's optional, because you don't need to do the optional things, but you need to create things that are necessary. So why is that critical for a backdoor? Because you need the packets to look the same as the web profit question. Yeah, the web traffic should look the same, right? The HTTP protocol that it's speaking should look the same. If an administrator decides to make a web request to the server, right, it should get a legitimate response back. It shouldn't get a response that says, I don't know, it shouldn't throw an error in Chrome that says, hey, this thing isn't speaking the right HTTP protocol, so you're trying to blend in as much as possible. And the other goal of this assignment is to get you familiar with network programming. So in that, in light of that, no HTTP libraries are allowed. So you'll have to do the actual sockets and read from a socket input, and you'll have to parse the header, the HTTP headers and the HTTP request based on the spec by hand. But you can use URL parsing libraries, so I'm gonna do that. That's what we can use. Yes, you absolutely should. I mean, always. I don't know how else you do it. How are we gonna, how will you guys keep the sectors from bumping into each other? Yes, you don't have to worry about that. So that's, so the, and the name of your back door program will be normal web server, very innocuous. So the interface will be normal web server and we give you a port on the command line and you'll have to listen to that port. So, yeah. If this port is already used, what should you do?  You shouldn't just crash. How about kill the thing running on the port? No. No, it's very too, too evil. Don't kill the thing that's running on that port and then try to connect to the socket. Yes, we're not gonna do that. So your goal is you're gonna listen for incoming connections on the port and you're gonna respond to most of the requests with a valid HTTP11 response with the 404 HTTP response code. So this is gonna be your default thing when people connect to you. You're gonna say, I don't know what you're looking for. It's weird. But it will be a valid 404 response that will show up and the browser will parse it correctly. And this is another key point that I wanna emphasize. So this should be regardless of whatever they request from you. So when somebody makes an HTTP request, they can send you additional data if they're doing a post request or any kind of stuff. So you have to follow the spec and make sure you're parsing all of the input bytes from that connection. Right? Even if you're not gonna do anything with that, you still need to make sure you're parsing everything. Otherwise the client's gonna hang because it set data to the server that it never acknowledged. And read things. So yeah, this is the key point. So this is why you're implementing the spec correctly and why you're gonna follow the spec because you need to be able to not cause any problems to the client. The client should not know that you're using this other weird web server. You should just think it's a normal Apache web server. Okay. So now the backdoor functionality. So when you receive a GET request, an HTTP GET request for a URL of the form slash exec slash bracket command. So what do I mean here by bracket command? So what's bracket command? The command that you want to run? Yeah, it's a placeholder. I mean, whatever is sent there in the URL from that second slash to the end of the string, you're gonna take that command and execute it in whatever is the equivalent of the system Linux or Linux syscall. So you can look at this to see exactly what it is to make sure that what you're using actually corresponds with what I mean here. So it should be the same as running the command with bin sh sh.c So this means that the command will use the current path. It will... It'll use the current path. It will pass all arguments correctly and it will do all the space part setting and everything for you. I'm not sure about that from the outside. You want this to be easy for yourself. So after you execute it, the HTTP response will be the standard out of the executed command. We're executing something on the server. We want to get that response back. And the status code should be 200. And there's no limitation. Well, there should be no limitations to the characters that are in command. Isn't there a limit where all the URLs could be, though? Yes, besides something that's specified in the spec, right? It's a valid HTTP request with a valid URL there. And you need to execute that. Okay, for instance, if you're... If I make a get request to exec slash ls, you're going to return whatever executing ls is on the server. You're going to output that. If I make an HTTP get request of exec ls space la, then I want to return the body of the... I didn't finish my thought here. It follows up here. The output of the execution of the ls-la command on the server. What is supposed to be the working? Whatever the working... Whatever it is when you start your program. Okay. So would that be actually slash exec with the space or the %20 event? That's a good point. Yeah. I'm going to follow the HTTP spec. I believe I'll have to decode the URL so it will translate %20 into spaces. Yeah. Or plus, yes, plus as well. So you should use a library for that. So you know it's right. You don't have to do it yourself. But if there are spaces in there, it should work too, right? This is for you. This is your own functionality. You want it to be as easy as possible to use. If you're killed, you have to clean up directly. This just means you're going to be a good software developer, right? If you kill the program, you're going to release all your resources, release the socket, and then safely terminate it. Any questions? You mean press Ctrl C on the program itself, like on the host, right? Yes, on the host. Yeah, on the server. Or you get a SIG in. That's the same thing. Ctrl C sends a signal to the program. It's a R64 bit. Same thing with packages. This is all the same stuff. SIG did find some good network. If you have any program, if you have little experience with network programming, there's good resources here. If you find other resources that are good, email the list or email me and I'll add it here, right? I think it's helpful if we have a collection of these resources. I think that's totally a good solution. Cool. You can earn a little bit of extra credit in part three if you implement GZIP encoding. But note that you'll have to, once again, go to the spec and learn when can I actually send a GZIP response from the server. The client, not all clients may support GZIP, right? So there's a mechanism, a little bit of a negotiation where the client says, hey, I accept and you can GZIP the encoding. So this should work transparently to a web browser when you access this. And obviously only on the you can do it for all of them, I guess it doesn't matter. And the submission site will be set up shortly and you'll get an announcement about it. Any questions on the assignment? Are there separate submissions? Yeah. Can you use external libraries? Maybe not at all. Maybe you all. No, you can use the library. Just know HTTP libraries. The focus is on understanding the spec and learning about network server programs. Any questions? Individually, I guess I didn't ever said that, but it's implied, right? All assignments are individual. So we have one more topic to talk about. So we talked about ethics, we talked about hacker. And so the other thing I want to briefly touch on is an aspect of legal hacking, which is pretty awesome, and that's penetration testing. So penetration testing is when a company hires you to breaking their system and they purposefully are doing this so that you can attempt to find possible flaws in their system. So the idea is not just finding vulnerabilities. So just vulnerability analysis is finding vulnerabilities. So that on its own in a penetration testing sense is not enough. Why? Because certain vulnerabilities might be very hard to exploit and might never be exploitable in the real world. So this company is hiring you. They're hiring you specifically to demonstrate security flaws in their system. So they want to see that what damage you could actually do. Not what damage you could theoretically do given whatever vulnerabilities you potentially found. An exploitation is the proof of yeah, I found a vulnerability and look you hired me and I got root on your dev servers. I got root in your database. I have all your customer records. These are really bad things. It's usually done in a black box manner. What does black box mean in this case? You have no knowledge of the source code or how it works. You're operating under the same capabilities of a bad guy or a malicious hacker. You're on the outside. Black box is also in quotes here because often times you know if you're targeting let's say a bank or a credit card processor you may need user accounts to get access to more functionality so often they'll supply that to you but you'll do multiple types of pen testing where you say without any account which would be really bad and then what can I do if I have an account on the system? Am I able to gain privilege or move horizontally something like that? So is this enough?  No. Because one of the hackers might find a vulnerability which you might choose not to disclose and they do use it for that's tricky. Let's say you're dealing with let's say this company has really good Yelp reviews. Fair phrase, right? Very good trust. You trust this company they're going to they're going to tell you about all the things that they find. Is that still enough? Are you secure? Have you developed secure software? The technology you use might have certain vulnerabilities which are discovered at a later point in time I mean you never know. What doesn't they tell you when you get a report that says we found a vulnerability? What does that mean? There's a known exploit. Yeah, they found a vulnerability. What does that say about the rest of your system? It might. Yeah, it doesn't say anything right? I mean if they're good they've probably tried a lot of other areas and these were the things that they were able to find but there's absolutely no guarantee that these are all of the vulnerabilities that actually exist in your system right? There could be other vulnerabilities that maybe they couldn't exploit but they thought were unexploitable. It could be outside the area of expertise. It could be something that I'm looking for. It could be something that's a vulnerability at a later date. Maybe somebody finds a vulnerability at a later point. So yeah, you know this but so is it good? Is it useless with what I just said? It should be like never hire penetration tests for our systems. Is it useless anything? That's a good point. So something I didn't mention but you can have an internal pen test where an internal team performs a penetration test. How good are you at testing your own code? Or sometimes it's better to get outsiders who have no steak in the game right? So they actively do want an exploit so that's a good thing. But is this even effective? Like why do it if we can't make any claims about the broad security of the system? Why might you want to do it for some other reasons? We'll do a little more. Who left the holes that can be found to minimize the risk of enough when you're only prone to some inventive attacks that many people can find? So if you're hiring and paying people to do this for professionals and they find stuff I mean it's very likely that a bad guy could have found those exact same problems and cause massive damage to your system. So yeah you pay to find those before a bad guy does, right? Yeah that's definitely one reason. What about maybe I have cases of maybe actually security is not a big deal to the higher ups in your firm, right? So they don't think they're not giving your department enough money for security and to buy the tools you need and they haven't bought into that idea so you hire a penetration test team to test your system and then you go to your bosses and say hey look these people were able to get into our systems look they hacked the bank accounts of our customers or they were able to you know if they found this who knows what other kind of stuff were out there, right? So even if you can't necessarily gain or claim anything, right? It's still a valid and useful technique to try to increase the assurance of our systems that they are secure. So yeah it's not definitely not a good way to ensure the security of the system, right? So it doesn't mean that your system is secure you get to take into all kinds of other aspects you can do static analysis you look at the policy you look at social engineering attacks all this kind of stuff make up a whole security approach So anyways we already had this discussion of is penetration testing is useful So in this class proceed ethically right? So only attempt to find vulnerabilities in web applications and systems that you control have permission, don't go to jail don't violate ASU's policy either that's also very important when you're doing these things Alright, any questions on this before? I think it's very important Sweet, alright Now we're going to move a little bit So the first topic we're going to cover is we're going to talk about the network So specifically we're going to focus on attacks on the network that we as an attacker leverage in order to try to migrate to other hosts and so we're not going to go we'll go into depth about certain things but there are lots of other classes here, there's a whole advanced network security class so we're not trying to step on those things but we want to go over and discuss what are the important things here So I expect that you have some network experience background and or you will gain some through the assignments So I'm going to cover these a little bit quickly but stop me at any point I do want to have some discussions at certain points So what's the IP? What's the IP? So the internet protocol Sweet is a set of protocols so the whole idea is we want to transport data between two nodes on network, it doesn't necessarily have to be the internet but it could be any nodes and any network, the internet is separate from the IP Sweet It's also known as the TCP IP stack and this is because there's kind of a tight coupling between TCP and IP or they're very closely related. The whole idea is that we take the network and we want to abstract different layers from it So each layer and each technology focuses on one particular thing and abstracts all the other details from below it So for instance the link protocols, so what are some examples of link protocols? What do we mean by link here? Like the guy on Zelda? Connecting two nodes Connecting two nodes, yeah, like the physical link that connects two nodes in a network or not necessarily nodes, it could be intermediary nodes, right? What are some examples of link protocols? What? What is it? OSPF I think that's a router Yeah What would be? What is it? OSPF is network built I guess I'm going to do a little higher up How does your phone talk to your wireless router? Wi-Fi Wi-Fi? Wi-Fi Wi-Fi at 802.11n or whatever the thing is A or G or B or an Ethernet plug in an Ethernet There's an Ethernet protocol of how one end of the cord talks to the other end of the cord, right? Above that we have the IP the internet protocols that we look at above that so the internet protocols deal with routing how do we get data from one host to the other Above that we have the transport protocols so how does one host send data to another host At this point we don't care how the data gets there I don't care if you put it on a ship in USB keys and then it took a month to get there We don't really care about that because we're abstracting how it physically gets there And finally we have where we actually want to be is in the applications You, the programmer and especially the user, you don't want to think about PCP packets and strings and connections You're going to think about that as a developer because you want to build applications on top of that that use these abstractions The whole point is that you don't when you're a programmer you don't have to worry about the link level Think about, okay, is this person connected by ethernet or wifi Obviously in some cases with mobile phones you actually do want to know that information But in general if I just want to send data from one computer to the other I don't care how it gets there how the other layers work as long as I can successfully do that So to think about this as a layer a layering system right from the bottom we have the physical layer which is communicating from one node to the next Above that we have the link layer So this gets into hardware interfaces which interacts with the internet layer which is IP Then above that the transport layer And then finally on top of that we have the applications that we know and love HTTP SMTP email protocol DNS the domain name So that's the thing that takes that domain name you type into the browser and turns it into an IP address so that you can actually make the second layer work NFS Never fileshare This is a file sharing not like a file sharing protocol but to allow people access to like a what's the example I'm thinking of Like on Windows when you share this folder with the network that's NFS that's using Or if you're on Linux I believe Samba is the SMD Or is that a different one? Point is there's a lot Okay So we're gonna start with IP addresses because this is going to be very key to what we want to look at in the security here of the network So each host if you want to talk to a host on the network it's got to have some kind of address that you can refer to it If you think about like homes and houses if you don't have an address I can't write a piece of mail to get to you because there's no place for it to go A host could have many IP addresses IP addresses So IPv4 is really what we're going to focus on because IPv6 adoption is not quite up to where we want it to be yet to talk about it So IPv4 has 32 bits The Classable way of thinking about it is a class, a net ID and a host ID It's represented hopefully in what is this very familiar dotted decimal location So each of these is 0 to 255 right which is a byte so you have 32 bits, so 4 bytes right And the classes used to be when you got a network you would get it in this space, so you would get a class A network that had a lot of hosts I wish I had 16 million hosts on it a class B network would have 65,000 and a class C network would have 256 What's the problem with hard coding separation here between different networks What's that? Is it okay? Yeah, waste IP yeah, waste IP addresses because as an organization to get the network or to get a slice of the IP network you'd have to fall into one of these super broad buckets where you're starting a business It's a problem I want an A, give me an A What do you need, 16 million hosts? Not now, but from the start I'm clearly going to grow to 16 million computers So yeah, I definitely want an A So then what happened is they said doing this routing or thinking about it in terms of these classes really isn't bad So waste enormous amount of space the number of hosts constantly increases IPv6 has is it 64 bit addresses or is it 128? Yeah, a ton of addresses So you can give every organization 12 million or whatever IP addresses and it's going to be fine They say that they can address each particle in the universe Yeah, with 128 bit addresses you can address the whole sand and the beach just in case they really want to get your data packets The problem is adoption is slow So the numbers I looked at said Google says they're getting about 9 or 10% IPv6 traffic which is actually pretty good So at some point I'll have to update all this for IPv6 but today is not that day So in 1983 they came up with a scheme called CIDR which is Classless Interdomain Routing So the idea is you could change the net ID and host ID boundary to be on any bit between 13 and 27 So you could arbitrarily adjust the size of the network which gives you 32 hosts minimum to 224,000 hosts maximum And so IP is really kind of the glue of the internet So this is what gets your data from one place to the other regardless of all the hops in between So your data comes from us here to probably some of the ISP Is it Clearlink? No Centurylink Probably the Centurylink servers Then depending on where it wants to go it may go to like a Verizon or an AT&T broadband which then gets sent down to LA if your traffic is going to go to LA So it gets all these hops The important thing here is that it's connectionless so IP doesn't care about who you've connected with or what or the state of the connection It's just concerned with I want to get this piece of data from this machine with this address to this machine with this other address That's all it ever cares about It's unreliable What does that mean? The packet can be dropped on the floor We don't care IP doesn't care anything could happen Best effort which means they'll try to do it It's kind of like a similar type of reliable Actually in the book it's mentioned that it makes no effort best effort is in euphemism Yeah, best effort It's optimistic Honestly, I mean packets nowadays fairly reliable but still doesn't offer anything Delivery of a packet The integrity What does integrity mean of a packet? Changing Yeah, it could be changed along the way Ordering What does ordering mean? Yeah, right? So I sent two packets to you one after the other Who's to say you'd get them in that same order? Because we're not saying how packets take to the network or anything like that Non-duplication You could get two of the same packet I could send one packet to you and somewhere along the way a router sends the packet but then thinks it didn't send it so it sends it again You get two packets at the host Bandwidth, there's no guarantee of bandwidth or anything So the whole idea is what IP is for is to exchange what we call datagrams or packets or just information between any two nodes that have IP addresses So do you all have Is this how you talk to other computers on the network? Say I know Google's IP address and they know my IP address so you guys exchange packets Why not? It would be very hard to remember all those sets of numbers It would be very hard to remember Exactly Nowadays there's a lot of networks in between you and Google Actually I think ASU NAT which I think we'll get into which makes it seem like all of us are coming from the same IP address to Google If you've ever done a Google search and it says, I think you're a robot fill in this captcha It's because all of your fellow students are searching for things on Google that's crawling Google There still is We have a way to know Google's IP address We have our own IP address either on the network or internally within ASU And when we send out that packet from here it says, hey, I want to talk to Google send this thing to Google The IP network knows how to get that packet there And so this is where So the other lower level protocols are how that packet actually physically gets from your computer to the next hop So from here to the router So RFC 791 So like I said, everything comes back to the RFCs They're pretty awesome It defines exactly the bits in an IP datagram and exactly what they mean So Do we actually care about what's in the data of the IP packet? No, not really It might be encrypted Yeah, it might be encrypted Who cares, right? We'll see if we care slightly But, yeah, in the general case we don't really care So here we're talking about basically the header of an IP packet This is additional metadata we add on top of that packet that specifies, hey, where it's going to go So if you think about Has everybody sent a letter? Like a physical letter? No? I'm still going to use this anyway So you've seen movies with people writing letters, right? Right, so your datagram in a letter equivalent would be what? The letter itself, right? I write a letter out to somebody then I fold it up So then what I do is throw that in the mail and they know how to get this to who I want to Exactly, so I put in an envelope first and I write some metadata on the front that tells the post office how to take this letter, this data from me to them So that's exactly what's on here So when I write on a letter, when I write the person's name their address their house number their city, their state their zip code everything on the front and I also put a return on their back in case there's any problems they can return it back to me So I put my name, my address, all that stuff This is all the same information So you've got to think of this headers like the addresses you put on an envelope So the first thing, the first four bits are the version of the IP that we're using So normally this will be what? Fourth, IPv4 Unless it's IPv6, right? So you know that this is an IPv6 packet The HL Yeah, the header length Okay, I forgot what that was I was going to cheat and look That's what I should just do So HL is the length of the header So this specifies how much, how far this packet goes down We'll see in the next slide exactly what the properties of this are But the idea is here, right As we know, so why do you have to include the length here? Because it could be Exactly So now we know Okay, by including this here that means the length of the header could be variable If it was fixed, we wouldn't need to include this It would always be whatever 20 bytes or five words or something like that Okay, after that we have some flags about the service type So this, as we'll see, specifies different flags Then we have the total length of the entire packet right at the data that we're sending We have an identifier that specifies uniquely the packet We have flags for the packet fragmentation offsets which get into really interesting and enable some really cool attacks here The time to live the protocol, so this protocol actually does break a little bit of the encapsulation So this is the protocol of the underlying packet, is it TCP, UDP, R, ICMP or different kinds of protocol in there A check sum So what's a check sum? Exactly, it's a check integrity of the header, right? So this is make sure that when you're reading this, I know I got all of these bits correctly, because every bit in here is important, so if one bit flips everything is done We have the source IP address, the destination IP address, any other options a variable length option section, padding and then finally the data So let's break here and when we come back we'll dig into kind of exactly what these mean Wow


Ukrainian artillerymen on the eastern front line say they have noticed an uptick in Russian artillery use over the last month, days after South Korea alleged Pyongyang had already provided Moscow with over a million shells.In Ukraine's Worevich-Denetsk region, three crewmembers of a hyacinth howitzer captured from Russia last year said they had seen an increase in the quantity of enemy artillery fire in recent weeks, Reuters was asked not to reveal their exact location or name their brigade. Due to the recent outbreak of intense fighting on their part of the front line, with the sound of outgoing and incoming artillery crashing in the distance around him, one of the artillerymen, 22-year-old Vitaly, said he had felt the uptick about a month ago after coming back from leave. However, the crew of the hyacinth, as well as other Ukrainian soldiers on different parts of the front, told Reuters that the longer-term trend has been a significant decrease in Russian artillery shelling from a year ago, the hyacinth cruise commander, a straight-talking, gold-toothed 45-year-old named Aleksander, also said there had been a recent uptick in Russian artillery use, but that he could not say for sure where the new shells had come from the US said in September that it believed. North Korea was about to supply millions of shells to Russia, which it said was facing supply issues in its invasion of Ukraine. Moscow denied the claims at the time, the intelligence service of South Korea said on November 1 that Pyongyang has already supplied over a million shells to Russia since August. We are working, the blundish, the blundish is so round. The crew is coming, we are running, we are working, and the blundish is back again. Such a round-trip is a bit, it turns out. Now it has become more in its position, that is, in principle, everyone is standing in their positions, there is no such mobility, so to speak. We do not move anywhere in particular, nor do they, that is why it has already passed into the stage of such a bishak atok, once it was, well, like atok, that is, a positional war. It is very nice to fight trophy weapons, I will say so. It is very nice to fight, and trophies are much more pleasant, can you imagine? It is much easier to give them, they are lower than the Germans. We have a war for them, for them. This is from him? Yes. But what has happened there? Well, it has already passed an hour, I have been doing it, this family has asked for another one. I will make a repeat launch. We have a case with a very dangerous and strong enemy, who has a lot of resources, a lot of weapons, a lot of liberators. The army does not carry them out in the number of times. Well, we are effectively fighting with them. Those who say that there are fairy tales, tell that they do not know how to fight at all, but they are fairy tales. So, the world without change, aim.  But then it is harder. There is nothing difficult here. You say that the prisoners will shoot, or what?


I'm leverage, it's jacked. Patriot Prime Reviews is a channel for adult collectors and may not be suitable for children under 13 years of age. Viewer discretion is advised. Hey, what's going on guys? Patriot Prime here once again with another video. But before I get started with the subject of this video, I want to give a huge shout out to my sponsor, toyhacks.com. Toyhacks is a company that provides upgrade decals for modern transformer figures along with reproduction decals for the vintage ones. While visiting Toyhacks, make sure and check out the Toyhacks Armory to see their line of Transformers weaponry in multiple collars and toy stages for awesome display backdrops. Each purchase from Toyhacks earns you Robocents that you can use for future purchases. You can check your balance anytime in your cart. Toyhacks is a company run by collectors for collectors. So make sure and check out toyhacks.com and tell them Patriot Prime sent you. Now on to the review. The featured button this video is the brand new Transformers Studio Series Core Class Bumblebee Movie Ravage. And yes, I've got pieces rattling around in this packaging. Now, big shout out to Extra Zero from the channel Figure Action for finding Ravage for me and sending him my way. Now, when the box arrived with Ravage, I could hear this rattling around in the packaging. Not Ravage's packaging, but the box itself. And one of Ravage's weapons had fallen out and was bouncing around the box. Which goes to me complaining about this new packaging. There is no window. I mean, how many of these are gonna be on the shelf with missing parts? I mean, this is the little sec piece that was floating around in there and it was, I guess, attached somewhere in the corner. I looked, there's other weapons down in there as well. I'm not sure if you can see them. But how easy would that be for those to just fall out? I mean, how many Ravages are gonna be returned for missing pieces? I can understand this whole green new deal packaging but man, come on, this is just, that's too easy for people to steal or weapons and stuff to fall out. But that's a rant for another video. Take a quick look at the packaging. We've got Ravage right there in robot mode from the Bumblebee movie. Transformers, Bumblebee, Studio Series. You got Ravage there on the side. Ravage on the other side. Back of the packaging shows Ravage in robot mode and cube mode. So now, without further ado, let's get Ravage opened up out of this packaging and check him out. And welcome to Patriot Prime Reviews. Now, once you get Ravage all opened up and out of the packaging, you'll see he does come with a sheet of instructions that as usual is very well illustrated but fairly easy to follow. There are some design choices right here especially that shows an odd angle of Ravage and it took me a second to figure out how to fold him up into a cube. He also comes with a few accessories. You've got this piece right here. This is the piece that was falling around inside the box. You've got this little missile pod and you've got these two little hip blasters. So what we're gonna do first is let's go ahead and attach the weaponry to Ravage. We'll start with the hip blasters first and there's little holes right there on his hips. You can go ahead and plug those in. I like to put mine in with this little section here facing up just like the original Ravage had the section sticking up from the scope or from the missile. Look like a scope. So there we go. We got the hip missiles attached. Now we have the missile pod and it shows in the instructions that the missile pod is gonna go here on his back. That'll peg in right there. These are small. So there we go. And then we have this piece here which plugs in under his gut. So there you go. Ravage all armed and ready for battle. Now I like all of the weapon accessories except for this one. This one just seems out of place but I'll show you where that goes later on. Now taking a closer look at Ravage. This figure looks really, really good and just like he looked in the Bumblebee movie. Man, I remember almost spilling my popcorn when Soundwave ejected Ravage. That was so cool. Lots of molded detail on the figure. Great paint applications. Got a little Decepticon insignia there on both shoulders, some red and white. Stripes here on the back. Face sculpt is really good. Love the yellow eyes. Kinda interesting design choice with that turkey waddle there under his chin but that helps move the mouth up and down or open and close. So that's pretty cool that it gave him an articulated mouth. Other articulation, man, he's got the moves. Legs can do a complete 360. Though you are gonna catch on some pieces. There's bends at the knees, the feet, all four legs exactly the same. The tail can wag up and down and the head can go up and down as well. So lots articulation for this little figure. And he just, he looks really good. I mean, when's the last time we had a really good looking Ravage figure in the main line? Now, let's go ahead and get him transformed. Now what we're gonna do is go ahead and remove the weaponry. You can actually take the launcher here and put it on his stomach where the other weapon was. And you can leave that there in robot mode and for transformation, excuse me, getting tongue tied. So the first thing we're gonna do is right here with the hips. We're gonna move this section down right here. So fold this in. You don't try to keep the legs up or the hips up rather. And then you're gonna bring this whole back section with the tail down and around. Once again, like I said, you wanna make sure that the hips are facing up. Like so, they do catch. So now we have that going on. We're gonna take the beast head or Ravage's head, fold it under like so. And now we're gonna bring the legs up. I have to move the four legs out of the way.   Bring the foot down like so. There we go. Go ahead and do this for the other side. That one's tricky. Of course, this figure's so small and trying to see how to put it in there. Now, we're gonna bring the four legs back. You can get that toe facing back. Bring the four legs down and there's also a little peg right here.  So kind of get that manipulated. You know, it's these little figures that transform into cubes and stuff are always kind of confusing at first. Let's see, what have I done wrong? Well, this foot right here needs to go back. So everything has just gotta fit in just right. And there is Ravage in his cube mode. You wanna go ahead and take the weapons and the ones that we had here on the hips, they're gonna now peg into that hole right there. And you wanna make sure, see how it won't go flush all the way? You have to make sure that little scope thing is facing out this time. So there is a certain orientation you have to have for the weapons. Go ahead and get this one done on this side. There we go. So here he is in cube mode and you can actually take this weapon here and attach it on top of Ravage. So now he's some type of artillery emplacement or gun emplacement or something like that. It's weird. You really don't have to do anything with that. But cube mode, it's just that. It is a cube. And this is designed to go in Studio Series 86 Soundwave. So now just hit the eject button on Soundwave's shoulder and Ravage should slide right in. May take a little bit of work to get him in just right, but there you go. The door shuts and Ravage is secure. And it looks pretty good inside Soundwave. I dig it. It's pretty cool. So now what do you do with this extra weapon piece? Well, this is designed to go in Soundwave's shoulder cannon. So now he has more of a G1 inspired weapon, but Soundwave didn't have that look for the shoulder cannon. So what you can do, go ahead and pop the shoulder cannon off, fold this section here in, which will reveal another handle, pop that in Soundwave's fist. And now Studio Series 86 Soundwave looks a lot more G1. Of course, his other blaster, you can peg that in in the same hole where the shoulder cannon was. So you've got that look going on. I mean, it's not great. I wish he had another shoulder cannon. Part of me figures if he, this Soundwave comes on clearance. I may grab another one just so I can have another shoulder cannon.  Now, while you have this section up right here, you can go ahead and hit the button and put your finger through and push Ravage out. Other than that, he's really hard to take out just pulling him out of the front. So there you go guys, the Studio Series 86 Ravage. And now for some quick size comparisons here is Transformers Studio Series Core Class Bumblebee Ravage with Generation One Ravage. And see what I was talking about with the scopes on top of the missiles there on G1 and the callback on the Studio Series. War for Cybertron Ravage, that one was a joke. And War for Cybertron Trilogy Netflix Ravage, another joke. The Transformers Studio Series Core Class Bumblebee Movie Ravage is a great little Ravage figure. One of the best ravages that we've got in the mainline aside from Masterpiece. This figure has tons of articulation, tons of personality. I love all the weapons, especially the little addition for Soundwave. Now his Cube Mode leaves a little bit to be desired but Ravage has never been known for a fantastic Alt Mode. So there you go guys, Transformers Studio Series Core Class Bumblebee Movie Ravage. So does a Transformers Studio Series Core Class Bumblebee Movie Ravage belong in your collection? Absolutely, especially if you have Studio Series 86 Soundwave. I mean they go together like Peanut Butter and Chocolate. Plus it gives Soundwave this awesome cool addition for his weaponry. Now if you don't happen to have this Soundwave figure, I think this Ravage would still look good in your collection because like I said, we haven't had a good Ravage in forever. I mean we get stuff like the Netflix Ravage or this thing that I actually forgot I had until I was looking through my ravages that's on my shelf. So yeah, you see this guy on the shelf? Pick him up, you're not gonna be disappointed. Just be very wary of the packaging, look inside, make sure you got all the weapons. Now guys, if you enjoyed the video, don't forget to like, don't forget to subscribe, and don't forget to click that bell icon to get notified when I upload new reviews. Also, if you're in any position to help out the channel, I do offer channel memberships here on YouTube and I have to give a huge shout out to all my current channel members because it's support like yours that helps keeps this channel growing. Once again guys, this is Patriot Pride, signing out. Hey, what?


What's good jobs bull rocks back at again with another video. So we just finished doing our Smackdown live stream reaction shout out to everyone that was a part of that We had a good time as always when we do the live stream reactions But the most notable thing that I wanted to talk about on this show and the kind of the highlight story line wise for Smackdown tonight was the the bloodline situation and more so the The dissension of the bloodline. So show starts off With Roman Reigns coming down to the ring and he actually got a lot of booze tonight People were giving him a lot of booze. There was still something that gave him the cheers and stuff But people were giving him a lot of booze or whatnot. He's doing his normal normal stuff And then Kevin Owens come out his music plays Sammy Zane music plays So they walk up to her to the ring and my dad that it was just Roman solo and Paul the Usos weren't there We're not at that moment at least so Sammy Kevin Owens walk up there and Pretty much Kevin Owens really didn't have much to say Kevin Owens didn't have much to say You know, he was just really kind of in this like non-slime.   You're not winning this. This is something. I've been looking forward to to beat you at your own game you're not winning the titles in a sense and fired up promo segment definitely once again if you guys haven't Check it out. Go check it out. It's definitely hiked me up even more for that tag team match Because I do think it's gonna be potentially master the night man I think he's gonna be a real good match to crowd should be hot for this one. This is gonna be great So Roman he's he's getting annoyed. He starts doing the scratching the beard and stuff and and you can tell Roman was really upset with Sammy guys Roman and wanted to say something to him because obviously Roman had invited him Into the fold into the bloodline So he really wanted to get off his chest what he wanted to say and before he could really do that that's when the Usos out of nowhere attack Sammy Zane and Kevin Owens from behind now notice Roman doesn't get involved solo don't get involved in jumping them It's just them too. So after that happens That's when Roman gets upset. He gets mad He's not happy that they did that. He's like, yo, what are you doing like what why y'all out here? I didn't tell y'all to do that like what are y'all doing like he he's upset So he's so upset to the point where he walks turns around Solo's right behind him and he bumps into solo he bumps into him like shoulder bumps into him or whatever and Solo looks at his shoulder Roman looks at him a little bit and he kind of waves it off and gets out the ring like he's pissed off and I'm like Something interesting is happening here and I like that. I like I'm gonna expound on that after we talk about the next segment So he walks off solo looking at his shoulder. Everybody else is kind of looking at each other Roman's upset So we get to the back and Roman is talking to them like they are children, bro He was like, yo, I had it under control There was something I wanted to get off my chest something that I wanted to say to Sami Zayn and y'all came in here and Messed it up like he's just going off on them Basically talking to them like they're his kids and these are family member cousins like he's talking to them very Disrespectfully, you know to the point was like get out get out like he shoes them out of there So it's it's it's one of those things where I'm liking that he has this like this Disdain for them the people that helped him retain the title so many times He has this now type of he looks at them as like less than before he always kind of looked at them as Someone that can help not on his equal but someone that that he cared enough that you know cared enough in a sense That they will help him when he needs it now. He looks at them. He doesn't really want their help He's kind of annoyed when they're around. He's always been he's been trying to avoid them for the longest He looks at them as failures as jokes to the bloodline and I find that very interesting And I don't know and the reason why I wanted to bring this up with that little show with solo and solo is their brother The Uso's brother I don't know if there's something going on if there's gonna be some story built up with that because They're brothers or what not and if you see Blondie Blondie is with us again, you know, so yeah, so shout out to Blondie I'd need to give her some medicine but um, I Don't know if that's gonna play a part at night of champions where maybe the Usos do get involved in a sense or what not cost in the match and then maybe Roman is like trying to send like Solo on both of them or something like that when they're down and out Like once him once solo to join in cuz I could see Roman Attacking one of them at the end of the match He just loses it and attacks one of them and then commanding solo to maybe attack one of the other Usos, I don't know but I do feel like it's gonna be one of those things where solo's gonna be kind of Hesitant he's not gonna really want to attack his brothers because once again They're his brothers. They're family at the end of the day. They're closer to some Roman They're closer to the Usos. He's closer to the Usos than Roman because they're actually Like in like fam like even though they're all family. They're blood family like this is I mean techniques They're all blood family, but you know like that immediate like you have your cousins and you love them But it's different when it's like your brother or your sister you grew up in the same household type situation That's a little bit different So it's gonna be interesting to see how they expound on that that wasn't an accident that he bumped into him because you know It is gonna be very interesting to see how they play that up because we know Roman at some point He's gonna snap and he's gonna go off on the Usos The question is will solo be behind him in those efforts and that is what I'm looking forward to seeing Honestly, I can't wait for this match. I think it's gonna be fun I still do believe Sammy and Kevin Owens will retain because the Usos We're gonna do everything they can to prove that they can help but they're gonna ultimately cost Roman and solo to match and we'll see where things Go from there. So but comment down below. Let me know. Did you guys enjoy this episode of Smackdown? I thought it was a solid episode some good wrestling some some storylines progressed But the bloodline storyline was the main thing that people were interested in and also at the end of the show They Usos had a match with LWO And of course Sammy and Kevin Owens end up costing them their match They end up costing them their tag team match against the LWO and they lost and Roman was upset He's watching it on it in the back And he was pissed because they lost again. They didn't get the job done So it's gonna be interesting to see how they play out But ultimately it was enjoyable show some good wrestling, you know quick straight to the point That's why I rock with Smackdown two hours is easy to digest and I can I can appreciate that So comment down below. Let me know what was your favorite segment Are you guys looking forward to what's gonna happen at night of champions when it involves the tag team titles between Roman and solo and Kevin Owens and Sammy Zane you guys looking forward to that match because I know I am But I appreciate all the love and support you guys showing on channel road to 150k And I'm still getting speedy you to the rest of the world. Appreciate y'all kicking me. See y'all next one. Peace


This lecture is entitled Joseph Wright of Derby, A New Spirituality. Now, Joseph Wright of Derby, who you see over here on the left, can be considered one of the quintessential Enlightenment painters. And this is his self-portrait from 1780. And he was trained as a portrait painter, but he became famous for scenes like these, these two paintings on the right. And these are paintings whose subject matter is concerned with scientific discovery, industry, and the changing view of the world that was brought about by the Industrial Revolution. Industrial Revolution. And of course, the ideals of the Enlightenment. And we're going to take a closer look at this image here, which is the philosopher giving a lecture at the Orary, and it dates to 1765. And over here on the right is a painting known as The Alchemist, and it dates to 1771, to give you a sense of what time frame we're looking at here. And I think it's interesting to just quickly look at these two paintings of his that show scientific discovery, scientific works, before we take a close look over here, because they really feel like religious paintings. So that's what I mean when I say a new spirituality, especially if you look at this image on the right with this alchemist here, kneeling before this glowing ball. It seems almost like this could be a monk overcome with some spiritual emotion or moment, but these are paintings about science. So we're seeing a really interesting shift, not only in the culture at large, but specifically here with the art created by Wright of Derby. So I want to take a closer look at the painting in the middle here, which is one of his most famous works of art. So this is known again as philosopher giving a lecture at the Orary. So I'm going to write that down for you. So for giving sort of a hard word to pronounce Orary, and it dates to 1765. And many people consider this one of the best examples, not only of Wright of Derby, but of the Enlightenment period in how the world is changing and how this influences painting and the arts in general. So what we're seeing here is a scholar, you can see him here, demonstrating a model of the solar system, and that's what an Orary is. So it's a model that shows how the solar system works. And each planet revolves around the sun, which you can't see, but we can tell there's an artificial light source here. And that's a lamp or a candle, a natural flame in the center of this model. So that's essentially what we're seeing here. And we see figures crowding around. You can see these two little children sort of looking on in wonder. This man up here taking notes. And the very serious scholar at the top demonstrating his knowledge to his audience. So a very straightforward, but very intimate scene of this scientific, enlightening moment as people are learning about the world, learning about the natural world. And I think it's pretty interesting that this image is illuminated by candlelight. And we have that famous chiaroscuro that we associated with, chiaroscuro, that we associated with artists like Caravaggio and Rembrandt and George de la Tour, artists from the Baroque. And you might recall, I hope you recall, that chiaroscuro was often a way of creating a sense of spiritual wonder in these paintings. And Rite of Derby has appropriated that technique, but to a different end. Rather than creating a spiritual wonder at God or faith, there's a wonder at faith in science, in knowledge, in industry, in all these new things that are coming about during the Industrial Revolution. And I think that really hits home when you compare this actually to a work by George de la Tour. So here they are. And I chose this comparison because you might recall that George de la Tour was also famous for his candlelit scenes. So there's a similar aesthetic in these two paintings. But again, George de la Tour was famous for religious scenes, like this one on the right, which shows Joseph the carpenter. And it's an intimate scene between a father and a son, but it's ultimately a religious scene because this is Christ and his father. These are important religious figures from the Bible. Whereas on the left we have, again, science. But Rite of Derby is using the same exact conventions that artists of religious paintings had used in the Baroque period. And this really signifies a shift in culture and in art. And it boils down to the wonder of knowledge of the world and science has come to sort of take the place of the wonders of the unknown and of religion.


Introducing Academy of Learning Career College's Graphic Designer Diploma Program. As an AOLCC graphic designer student, you'll learn color theory, the fundamentals of typography, logo design, design and composition, and many other skills required to succeed in graphic design, including the essential tools of graphic designers, Adobe Illustrator, Photoshop and InDesign. Academy of Learning Career College's Graphic Designer Diploma Program. Come join the exciting and rewarding field of graphic design.