Anyone who's put hands on a computer at some point, will have heard of an IP Address (Internet Protocol Address). These are the addresses assigned to devices on a network.
These days, these are not limited to just desktop computers; tablets, mobiles, smart fans, smart TV, anything that is connected to the internet or a local network will be assigned an individual identifiable IP address.
<aside>
💡 Linux Command : ifconfig - A UNIX command to display and configure network interfaces. It stands for "interface configuration".
Worth note: ifconfig is considered the 'old way' of doing things.
Another way of doing this is:
ip a (or, IP Address print all)
The output of both of these is slightly different, and it is outside the scope of this lesson to dive into it, but it is worth a look into at some point, always be ready / able to use the tools available to you - hacker hint #9000!
</aside>
Entering the above command(s) in a terminal will display quite a lot of information. The relevant ones for this section are:
inet - This displays your IP address in IPV4 (and is the display most of us are used to by now. For example, 192.168.10.10).
inet6 - This displays your IP address in IPV6 format, a newer IP format that has a far greater range than IPV4.
IPV4 is decimal notation, IPV6 is hexi-decimal notation. (Important later in lessons - take note).
Each section of an IP Address (such as 192) is made up of 8 bits. Each one of these bits can be switched on or off - ie, they are binary.
Here's how that would look. Each section of the following is one bit of the octec, where we have turned on the 128 bit, and left off the remaining 7 bits:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 x 0 0 0 0 0 0 0
<aside>
💡 IPV4 - Info!
An IPV4 address has 4 octecs of 8 bits meaning that it's a 32 bit address.
There are 2 ^ 32 IPV4 addresses (2 to the power of 32), which equals 4294967296. This sounds like a lot, but isn't. These IP addresses have been used up for a long time now, this is why IPV6 was introduced.
IPV6 - Info! This isn't hugely used yet. It's a 128 bit address in comparison to IPV4's. This gives us a HUGE amount more address space (in a number that's not worth printing, because we'd have trouble even vocalising what it is!)
</aside>
As we are out of address space for IPV4, but no-one is really using IPV6 as standard yet (I mean, there must be, somewhere, it's just not common yet..), it can raise the question of "if these IPV6 Addresses exist, why are we not using them?". **
****It's first worth repeating here that *everything connected to your network has an assigned private ip address on a private address space.
*****The more commonly known of these usually begin with 192.168 ****for small home and businesses. Private IP addresses are NOT publicly visible to the internet and do not use up a public facing IPV address.
By using the magic of NAT - Network Address Translation, they are assigned a private IP address, known only to your network.
We use ONE public (internet facing) IP address.
Any private IP addresses on your local network are translated to this public IP address when communicating with the outside web.
<aside> 💡 Private IP Addresses are assigned a CLASS, depending on how many hosts and networks that class can contain.
CLASS A: Network Range: 10.0.0.0 - 10.255.255.255 - Used by larger organisations, with a subnet mask of 255.0.0.0 allowing 16,646,144 hosts per network and 126 networks.
Class B: 172.16.0.0 to 172.31.255.255 - Used by medium to large enterprise or organisations with a subnet mask of 255.255.0.0, allowing 65,000 hosts on 16,000 networks.
Class C: 192.168. 0.0 to 192.168. 255.255 - Recognisable by most people, this Private IP address range is common on home networks and small business networks and has a subnet mask of 255.255.255.0 , this can have 256 hosts per network with a possible 2,097,152 networks on the IP range. This means that only the last octec is available for hosts.
</aside>
I am far from happy with these notes.. however, after discussion with some very experience network engineers, sysadmins and pentesters, I have come to the conclusion that this is actually a much more complex topic than it initially appears. I will continue on with the course from here, bear this learning in mind as I go, improve on it where I can, and come back to update these notes at the end of the course. Otherwise, I feel I'm going to spend much longer than I should here.