Aim
Studying Linux and Windows network commands. [ping, pathping, ipconfig/ifconfig, arp, netstat, nbtstat, nslookup, route, traceroute/tracert, nmap, etc]
GNU/Linux
ping
Usage
ping [options] <destination>
ping
uses ICMP datagrams to provoke a response from the chosen destination host, mainly intending to probe whether it is alive.
It sends ICMP ECHO_REQUEST to network hosts
Here, we use ping to check whether ftp.gnu.org
is up, and to see how many packets were dropped, along with the time-to-response(latency)
ifconfig
ifconfig
is a program to retrieve and to set selected properties of
network interfaces.
Now, we’ll run only ifconfig
to see a listing of all the network interfaces on this system
Here, we see the ethernet interface eth0
listed, with an IPv4 address of 192.168.122.192, with a netmask 255.255.255.0
We also see the MTU(Maximum transmission unit) defined
On the third line, we see the MAC address for this NIC
The second interface listed is a loopback interface. The most commonly used IP address on the loopback network is 127.0.0.1 for IPv4 and ::1 for IPv6. The standard domain name for the address is localhost.
arp
Use arp
to manipulate the system’s ARP cache
arp
manipulates or displays the kernel’s IPv4 network neighbour cache
You can add, delete or simply display the current contents of the cache
Here, we use the -a
flag to use the BSD-style output format, and the -v
flag to print verbose output
ARP stands for Address Resolution Protocol, and is used to find the MAC address of a network neighbour for a given IPv4 address
netstat
We can use netstat
to print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships.
Here, the -p
flag is used, which shows the PID and name of the program to which each socket belongs
nslookup
nslookup
is used to query internet nameservers interactively
Here, we will use the non-interactive mode.
We lookup goatse.cx using nameserver 8.8.4.4
route
Use route
to show or manipulate the IP routing table
We use the -n
flag to show numerical addresse instead of trying to determine symbolic hostnames
The -v
flag selects verbose operation
traceroute
traceroute
is used to print the route packets trace to a certain network host
Here, a simple traceroute
is done to classroom.volp.in
The output shows every hop taken to the destination host, along with the time taken and resolved hostnames and IP addresses
There are many possible routes to a specific host, and this is evident from the command’s results
nmap
nmap
is a network exploration tool and security/port scanner
It is an open source tool for network exploration and security auditing
Here, we invoke nmap and scan the network (hosts 192.168.0.0-192.168.0.255
)
We use the -sS
flag to perform a TCP SYN scan, which is fast, and can scan thousands of ports per second on a fast network. It is also relatively stealthy.
The -O
flag enables remote OS detection using TCP/IP stack fingerprinting
The results of this scan show a list of hosts, their open ports, and a guess of the running operating system and also the device type
Microsoft Windows
ping
Usage:
ping [/t] [/a] [/n <count>] [/l <size>] [/f] [/I <TTL>] [/v <TOS>] [/r <count>] [/s <count>] [{/j <hostlist> | /k <hostlist>}] [/w <timeout>] [/R] [/S <Srcaddr>] [/4] [/6] <targetname>
ping
verifies IP-level connectivity to another TCP/IP computer by sending Internet Control Message Protocol (ICMP) echo Request messages
Here, we use ping to check whether google.com
is up, and to see how many packets were dropped, along with the response time(latency)
pathping
Usage:
pathping [/n] [/h <maximumhops>] [/g <hostlist>] [/p <Period>] [/q <numqueries> [/w <timeout>] [/i <IPaddress>] [/4 <IPv4>] [/6 <IPv6>][<targetname>]
pathping
provides information about network latency and network loss at intermediate hops between a source and destination
This command sends multiple echo Request messages to each router between a source and destination, over a period of time, and then computes results based on the packets returned from each router
Here, the destination is mozilla.org
ipconfig
Displays all current TCP/IP network configuration values and refreshes Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS) settings network interfaces.
Now, we’ll run only ipconfig
to see Internet Protocol version 4 (IPv4) and IPv6 addresses, subnet mask, and default gateway for all adapters
Here, we see the ethernet interface listed, with an IPv4 address of 192.168.122.145, with a netmask 255.255.255.0, and default gateway 192.168.122.1
arp
Displays and modifies entries in the Address Resolution Protocol (ARP) cache
We use the -a
flag to display current ARP table entries, and -v
to enable verbose mode
nbtstat
This tool displays protocol statistics and current TCP/IP connections using NetBIOS over TCP/IP
The -n
flag is used here, which lists local NetBIOS names
netstat
We can use netstat
to print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships.
Here, the -p
flag is used with argument TCP
to show connections of the TCP protocol
The -s
flag shows per-protocol statistics
nslookup
nslookup
is used to query internet nameservers interactively
Here, we will use the non-interactive mode.
We look up google.com using nameserver 1.1.1.1
The -type
flag with value of MX
is used to set query type to MX records
route
Use route
to show or manipulate the IP routing table
The working is similar to the Linux command of the same name
tracert
tracert
determines the path taken to a destination by sending Internet Control Message Protocol (ICMP) echo Request or ICMPv6 messages to the destination with incrementally increasing time to live (TTL) field values
Here, a simple tracert
is done to tutanota.com
Some routers do not return time Exceeded messages for packets with expired TTL values and are invisible to the tracert
command. In this case, a row of asterisks (*) is displayed for that hop
nmap
nmap
is a network exploration tool and security/port scanner
The usage is the same as on GNU/Linux.
We use the -A
flag to enable OS detection, version detection, script scanning, and traceroute
The -v
flag enables verbose output
The target host is scanme.nmap.org
Conclusion
We have learned usage of the fundamental Linux and Microsoft Windows command-line tools.
Tools like ping
and traceroute
/tracert
are fundamental in troubleshooting network connectivity issues. ipconfig
is a commonly used to clear the DNS cache when issues with name resolution arise
We have also gained some insight into the internals of the Linux and Windows network stack, along with some networking protocols and concepts. Some examples include- sockets, routing tables, DNS and nameservers, IP addressing, TCP 3-way handshake, MAC addresses, loopback interfaces, MTU, ICMP, ARP
Lastly, some experience has been gained with the general syntax and usage of the command-line - usage of arguments, values, and flags to achieve a desired result. These results can be parsed with the programming language of our choice to incorporate logic, or to simply view the results as-is.