photo lineviral_1.png

Use Arp-Scan To Discovery Hidden Devices Inwards Your Network

The Address Resolution Protocol uses a elementary message format containing 1 address resolution asking or response. The size of the ARP message depends on the upper layer in addition to lower layer address sizes, which are given past times the type of networking protocol (usually IPv4) inward utilization in addition to the type of hardware or virtual link layer that the upper layer protocol is running on. The message header specifies these types, every bit good every bit the size of addresses of each. The message header is completed alongside the functioning code for asking (1) in addition to reply (2). The payload of the packet consists of 4 addresses, the hardware in addition to protocol address of the sender in addition to receiver hosts. The Address Resolution Protocol uses a elementary message format containing 1 address resolu Use arp-scan to uncovering hidden devices inward your network


The chief packet construction of ARP packets is shown inward the next tabular array which illustrates the instance of IPv4 networks running on Ethernet. In this scenario, the packet has 48-bit fields for the sender hardware address (SHA) in addition to target hardware address (THA), in addition to 32-bit fields for the corresponding sender in addition to target protocol addresses (SPA in addition to TPA). Thus, the ARP packet size inward this instance is 28 bytes. The EtherType for ARP is 0x0806. (This appears inward the Ethernet frame header when the payload is an ARP packet. Not to endure confused alongside PTYPE below, which appears inside this encapsulated ARP packet.)


If yous take maintain a device that is on the same network but non responding to whatever requests such every bit ping, HTTP, HTTPS etc. This is done intentionally, for illustration a Check Point Firewall doesn’t respond to anything past times design. Similarly a Cisco ASA, Router or BIG-IP F5 mightiness non respond to whatever requests every bit they are designed to endure silent. In those cases, using arp-scan to scan MAC address is a quick manner to uncovering those devices.


arp-scan


The ARP Scan Tool (also called ARP Sweep or MAC Scanner) is a real fast ARP packet scanner that shows every active IPv4 device on your Subnet. Since ARP is non-routable, this type of scanner solely plant on the local LAN (local subnet or network segment).


The ARP Scan Tool shows all active devices fifty-fifty if they take maintain firewalls. Devices cannot cover from ARP packets similar they tin lav cover from Ping. To uncovering active IP addresses exterior your subnet, utilization the Ping Scan Tool (a Ping Sweep tool AKA NetScanner).


Install arp-scan


Binary packages are available for the next operating systems:



  1. Debian Linux: arp-scan is component subdivision of the criterion Debian distribution on Lenny in addition to later.

  2. Ubuntu Linux: arp-scan is available from gutsy (7.10) inward universe.

  3. Fedora: arp-scan is available for Fedora vi in addition to later

  4. RedHat Enterprise Linux: arp-scan is available for RedHat EL v in addition to later

  5. Gentoo Linux

  6. FreeBSD: arp-scan is available from the FreeBSD ports collection

  7. OpenBSD: arp-scan is available every bit an OpenBSD package


Installation is usually every bit elementary every bit shown below for Debian or Ubuntu similar distributions:


root@debian: # apt-get install arp-scan
(or)
user@ubuntu: $ apt-get install arp-scan

Kali Linux beingness the awesome pentest distro it is, has it pre-installed.


Use arp-scan to uncovering hidden devices


arp-scan tin lav endure used to uncovering IP hosts on the local network. It tin lav uncovering all hosts, including those that block all IP traffic such every bit firewalls in addition to systems alongside ingress filters.


arp-scan plant on Ethernet in addition to 802.11 wireless networks. It may also piece of occupation alongside token band in addition to FDDI, but they take maintain non been tested. It does non back upwards series links such every bit PPP or SLIP, because ARP is non supported on them. You volition demand to endure root, or arp-scan must endure SUID root, inward fellowship to run arp-scan, because the functions that it uses to read in addition to write Ethernet packets require source privilege.


Discovering all hosts on the local network


If the organization yous are testing from has an address on the network yous wishing to scan, the simplest manner to scan it is alongside a command similar to:


root@kali: # arp-scan --interface=eth0 --localnet
(or)
user@ubuntu: $ sudo arp-scan --interface=eth0 --localnet

Here, --interface=eth0 represents the interface to utilization for scanning, in addition to --localnet makes arp-scan scan all possible IP addresses on the network connected to this interface, every bit defined past times the interface IP address in addition to netmask. You tin lav omit the --interface option, inward which instance arp-scan volition search the organization interface listing for the lowest numbered, configured upwards interface (excluding loopback).


The network interface refer depends on the operating organization yous are using, the network type (Ethernet, Wireless Etc), in addition to for only about operating systems on the interface card type every bit well. In this document, the interface refer eth0 is used for examples except where a dissimilar network type is beingness discussed.


All arp-scan options take maintain both a long cast similar --interface=eth0 in addition to a corresponding curt cast similar -I eth0.


I’ve used the long cast inward this document for clarity. I’ve also used wlan0 inward the next illustration in addition to I am on a Wireless network.


root@kali: # arp-scan --interface=wlan0 --localnet
Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 alongside 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.0.1.3 0b:1a:a0:c2:94:c0 Dell Inc
10.0.1.57 0b:0c:29:34:f9:6a VMware, Inc.
10.0.1.69 d4:85:64:63:b7:48 Hewlett-Packard Company
10.0.1.70 0b:0c:29:6d:92:b5 VMware, Inc.
10.0.1.27 c4:e9:84:0e:c1:12 (Unknown)
10.0.1.148 28:80:23:ac:dd:c2 (Unknown)
10.0.1.150 0b:50:56:b1:80:db VMware, Inc.
10.0.1.151 0b:50:56:b1:dc:a7 VMware, Inc.
10.0.1.195 18:a9:05:4b:61:58 Hewlett-Packard Company
10.0.1.198 ae:95:9a:69:f7:6c (Unknown)
10.0.1.199 1e:a8:82:10:66:4a (Unknown)
10.0.1.213 0b:50:56:b1:fd:62 VMware, Inc.
10.0.1.213 0b:50:56:b1:2b:08 VMware, Inc. (DUP: 2)
10.0.1.213 0b:50:56:b1:f3:b7 VMware, Inc. (DUP: 3)
10.0.1.213 0b:50:56:b1:f3:2b VMware, Inc. (DUP: 4)
10.0.1.213 0b:50:56:b1:8f:5a VMware, Inc. (DUP: 5)
10.0.1.240 0b:22:55:cb:59:81 CISCO SYSTEMS, INC.
10.0.1.242 3c:a8:2a:0f:d3:d2 (Unknown)
10.0.1.241 0b:25:84:69:6f:c0 CISCO SYSTEMS, INC.
10.0.1.243 3c:a8:2a:0e:c5:78 (Unknown)
10.0.1.244 0b:0c:29:4e:54:38 VMware, Inc.
10.0.1.250 0b:1b:54:97:68:8c CISCO SYSTEMS, INC.
10.0.1.252 0b:21:d8:70:e4:4b CISCO SYSTEMS, INC.
10.0.1.253 0b:19:55:9d:60:c1 CISCO SYSTEMS, INC.
10.0.1.145 bc:ea:fa:6f:ec:d2 (Unknown)
10.0.1.77 98:fc:11:ab:65:b9 Cisco-Linksys, LLC
10.0.1.178 48:5a:3f:12:d9:df WISOL
10.0.1.167 f0:25:b7:3e:a1:b1 (Unknown)
10.0.1.182 60:57:18:71:c5:a5 Intel Corporate

29 packets received past times filter, 0 packets dropped past times kernel
Ending arp-scan 1.9: 256 hosts scanned inward 2.259 seconds (113.32 hosts/sec). 29 responded
root@kali: #

So inward the higher upwards illustration arp-scan was used to scan the network of the device wlan0, in addition to it discovered 29 endure nodes apart from localhost machine. The choice --localnet makes arp-scan scan the local network.


The Address Resolution Protocol uses a elementary message format containing 1 address resolu Use arp-scan to uncovering hidden devices inward your network


Here is an illustration showing arp-scan beingness run against the network 10.0.1.0/24:


root@kali: # arp-scan --interface=wlan0 10.0.1.0/24
(or)
user@ubuntu: $ sudo arp-scan --interface=wlan0 10.0.1.0/24

Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 alongside 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.0.1.3 0b:1a:a0:c2:94:c0 Dell Inc
10.0.1.57 0b:0c:29:34:f9:6a VMware, Inc.
10.0.1.69 d4:85:64:63:b7:48 Hewlett-Packard Company
10.0.1.70 0b:0c:29:6d:92:b5 VMware, Inc.
10.0.1.41 ac:7b:a1:c6:14:e3 Intel Corporate
10.0.1.27 c4:e9:84:0e:c1:12 (Unknown)
10.0.1.145 bc:ea:fa:6f:ec:d2 (Unknown)
10.0.1.148 28:80:23:ac:dd:c2 (Unknown)
10.0.1.150 0b:50:56:b1:80:db VMware, Inc.
10.0.1.151 0b:50:56:b1:dc:a7 VMware, Inc.
10.0.1.195 18:a9:05:4b:61:58 Hewlett-Packard Company
10.0.1.198 ae:95:9a:69:f7:6c (Unknown)
10.0.1.199 1e:a8:82:10:66:4a (Unknown)
10.0.1.213 0b:50:56:b1:fd:62 VMware, Inc.
10.0.1.213 0b:50:56:b1:f3:b7 VMware, Inc. (DUP: 2)
10.0.1.213 0b:50:56:b1:8f:5a VMware, Inc. (DUP: 3)
10.0.1.213 0b:50:56:b1:2b:08 VMware, Inc. (DUP: 4)
10.0.1.213 0b:50:56:b1:f3:2b VMware, Inc. (DUP: 5)
10.0.1.240 0b:22:55:cb:59:81 CISCO SYSTEMS, INC.
10.0.1.241 0b:25:84:69:6f:c0 CISCO SYSTEMS, INC.
10.0.1.242 3c:a8:2a:0f:d3:d2 (Unknown)
10.0.1.243 3c:a8:2a:0e:c5:78 (Unknown)
10.0.1.244 0b:0c:29:4e:54:38 VMware, Inc.
10.0.1.250 0b:1b:54:97:68:8c CISCO SYSTEMS, INC.
10.0.1.252 0b:21:d8:70:e4:4b CISCO SYSTEMS, INC.
10.0.1.253 0b:19:55:9d:60:c1 CISCO SYSTEMS, INC.
10.0.1.77 98:fc:11:ab:65:b9 Cisco-Linksys, LLC
10.0.1.182 60:57:18:71:c5:a5 Intel Corporate
10.0.1.178 48:5a:3f:12:d9:df WISOL
10.0.1.174 84:7a:88:5c:a0:90 HTC Corporation
10.0.1.173 84:7a:88:30:5e:32 HTC Corporation

31 packets received past times filter, 0 packets dropped past times kernel
Ending arp-scan 1.9: 256 hosts scanned inward 2.221 seconds (115.26 hosts/sec). 31 responded
root@kali: #

Now I’ve constitute 31 hosts that responded to this novel sweep, hence those ii are my hidden servers.


The Address Resolution Protocol uses a elementary message format containing 1 address resolu Use arp-scan to uncovering hidden devices inward your network


Using an interface without an IP address


You tin lav still utilization arp-scan fifty-fifty if the interface does non take maintain an IP address. If yous utilization arp-scan inward this way, it volition utilization the IP address of 0.0.0.0 for the arpsha champaign inward the ARP packet unless yous specify the IP address to utilization alongside the –arpsha option.


Some operating systems volition solely respond to ARP requests if the IP address specified inward the arpsha champaign is plausible. The exact rules vary betwixt operating systems, but the most mutual is that the address inward arpsha must endure inside the IP network of the interface that the ARP asking is received on. This is explored farther inward the fingerprinting section.


ARP spoofing in addition to Proxy ARP


Because ARP does non supply methods for authenticating ARP replies on a network, ARP replies tin lav come upwards from systems other than the 1 alongside the required Layer 2 address. An ARP proxy is a organization which answers the ARP asking on behalf of only about other organization for which it volition forrad traffic, ordinarily every bit a component subdivision of the network’s design, such every bit for a dialup network service. By contrast, inward ARP spoofing the answering system, or spoofer, replies to a asking for only about other system’s address alongside the aim of intercepting information outflow for that system. Influenza A virus subtype H5N1 malicious user may utilization ARP spoofing to perform a man-in-the-middle or denial-of-service attack on other users on the network. Various software exists to both notice in addition to perform ARP spoofing attacks, though ARP itself does non supply whatever methods of protection from such attacks.


arp-scan scan assist carte du jour - Click to expand

arp-scan scan assist carte du jour - Click to expand



root@kali: # arp-scan --help
Usage: arp-scan [options] [hosts...]

Target hosts must endure specified on the command business unless the --file choice is
given, inward which instance the targets are read from the specified file instead, or
the --localnet choice is used, inward which instance the targets are generated from
the network interface IP address in addition to netmask.

You volition demand to endure root, or arp-scan must endure SUID root, inward fellowship to run
arp-scan, because the functions that it uses to read in addition to write packets
require source privilege.

The target hosts tin lav endure specified every bit IP addresses or hostnames. You tin lav also
specify the target every bit IPnetwork/bits (e.g. 192.168.1.0/24) to specify all hosts
in the given network (network in addition to broadcast addresses included), or
IPstart-IPend (e.g. 192.168.1.3-192.168.1.27) to specify all hosts inward the
inclusive range, or IPnetwork:NetMask (e.g. 192.168.1.0:255.255.255.0) to
specify all hosts inward the given network in addition to mask.

These dissimilar options for specifying target hosts may endure used both on the
command line, in addition to also inward the file specified alongside the --file option.

Options:

Note: where an choice takes a value, that value is specified every bit a missive of the alphabet in
angle brackets. The missive of the alphabet indicates the type of information that is expected:

A grapheme string, e.g. --file=hostlist.txt.

An integer, which tin lav endure specified every bit a decimal divulge or every bit a hexadecimal
divulge if preceeded alongside 0x, e.g. --arppro=2048 or --arpro=0x0800.

Influenza A virus subtype H5N1 floating dot decimal number, e.g. --backoff=1.5.

An Ethernet MAC address, which tin lav endure specified either inward the format
01:23:45:67:89:ab, or every bit 01-23-45-67-89-ab. The alphabetic hex characters
may endure either upper or lower case. E.g. --arpsha=01:23:45:67:89:ab.

An IPv4 address, e.g. --arpspa=10.0.0.1

Binary information specified every bit a hexadecimal string, which should not
include a leading 0x. The alphabetic hex characters may endure either
upper or lower case. E.g. --padding=aaaaaaaaaaaa

Something else. See the description of the choice for details.

--help or -h Display this usage message in addition to exit.

--file= or -f Read hostnames or addresses from the specified file
instead of from the command line. One refer or IP
address per line. Use "-" for criterion input.

--localnet or -l Generate addresses from network interface configuration.
Use the network interface IP address in addition to network mask
to generate the listing of target host addresses.
The listing volition include the network in addition to broadcast
addresses, hence an interface address of 10.0.0.1 with
netmask 255.255.255.0 would generate 256 target
hosts from 10.0.0.0 to 10.0.0.255 inclusive.
If yous utilization this option, yous cannot specify the --file
choice or specify whatever target hosts on the command line.
The interface specifications are taken from the
interface that arp-scan volition use, which tin lav be
changed alongside the --interface option.

--retry= or -r Set total divulge of attempts per host to ,
default=2.

--timeout= or -t Set initial per host timeout to ms, default=100.
This timeout is for the outset packet sent to each host.
subsequent timeouts are multiplied past times the backoff
constituent which is laid alongside --backoff.

--interval= or -i Set minimum packet interval to .
This controls the outgoing bandwidth usage past times limiting
the charge per unit of measurement at which packets tin lav endure sent. The packet
interval volition endure no smaller than this number.
If yous want to utilization upwards to a given bandwidth, hence it is
easier to utilization the --bandwidth choice instead.
The interval specified is inward milliseconds past times default,
or inward microseconds if "u" is appended to the value.

--bandwidth= or -B Set desired outbound bandwidth to , default=256000.
The value is inward bits per minute past times default. If you
append "K" to the value, hence the units are kilobits
per sec; in addition to if yous append "M" to the value, the
units are megabits per second.
The "K" in addition to "M" suffixes stand upwards for the decimal, not
binary, multiples. So 64K is 64000, non 65536.
You cannot specify both --interval in addition to --bandwidth
because they are only dissimilar ways to modify the
same underlying parameter.

--backoff= or -b Set timeout backoff constituent to , default=1.50.
The per-host timeout is multiplied past times this factor
after each timeout. So, if the divulge of retries
is 3, the initial per-host timeout is 500ms in addition to the
backoff constituent is 1.5, hence the outset timeout volition be
500ms, the minute 750ms in addition to the 3rd 1125ms.

--verbose or -v Display verbose progress messages.
Use to a greater extent than than in 1 lawsuit for greater effect:
1 - Display the network address in addition to mask used when the
--localnet choice is specified, display any
nonzero packet padding, display packets received
from unknown hosts, in addition to demonstrate when each overstep through
the listing completes.
2 - Show each packet sent in addition to received, when entries
are removed from the list, the pcap filter string,
in addition to counts of MAC/Vendor mapping entries.
three - Display the host listing earlier scanning starts.

--version or -V Display programme version in addition to exit.

--random or -R Randomise the host list.
This choice randomises the fellowship of the hosts inward the
host list, hence the ARP packets are sent to the hosts in
a random order. It uses the Knuth shuffle algorithm.

--numeric or -N IP addresses only, no hostnames.
With this option, all hosts must endure specified as
IP addresses. Hostnames are non permitted. No DNS
lookups volition endure performed.

--snap= or -n Set the pcap snap length to . Default=64.
This specifies the frame capture length. This
length includes the data-link header.
The default is ordinarily sufficient.

--interface= or -I Use network interface .
If this choice is non specified, arp-scan volition search
the organization interface listing for the lowest numbered,
configured upwards interface (excluding loopback).
The interface specified must back upwards ARP.

--quiet or -q Only display minimal output.
If this choice is specified, hence solely the minimum
information is displayed. With this option, the
OUI files are non used.

--ignoredups or -g Don't display duplicate packets.
By default, duplicate packets are displayed in addition to are
flagged alongside "(DUP: n)".

--ouifile= or -O Use OUI file , default=/usr/local/share/arp-scan/ieee-oui.txt
This file provides the IEEE Ethernet OUI to vendor
string mapping.

--iabfile= or -F Use IAB file , default=/usr/local/share/arp-scan/ieee-iab.txt
This file provides the IEEE Ethernet IAB to vendor
string mapping.

--macfile= or -m Use MAC/Vendor file , default=/usr/local/share/arp-scan/mac-vendor.txt
This file provides the custom Ethernet MAC to vendor
string mapping.

--srcaddr= or -S Set the source Ethernet MAC address to .
This sets the 48-bit hardware address inward the Ethernet
frame header for outgoing ARP packets. It does not
modify the hardware address inward the ARP packet, see
--arpsha for details on how to modify that address.
The default is the Ethernet address of the outgoing
interface.

--destaddr= or -T Send the packets to Ethernet MAC address
This sets the 48-bit finish address inward the
Ethernet frame header.
The default is the broadcast address ff:ff:ff:ff:ff:ff.
Most operating systems volition also respond if the ARP
asking is sent to their MAC address, or to a
multicast address that they are listening on.

--arpsha= or -u Use every bit the ARP source Ethernet address
This sets the 48-bit ar$sha champaign inward the ARP packet
It does non modify the hardware address inward the frame
header, come across --srcaddr for details on how to change
that address. The default is the Ethernet address of
the outgoing interface.

--arptha= or -w Use every bit the ARP target Ethernet address
This sets the 48-bit ar$tha champaign inward the ARP packet
The default is zero, because this champaign is non used
for ARP asking packets.

--prototype= or -y Set the Ethernet protocol type to , default=0x0806.
This sets the 16-bit protocol type champaign inward the
Ethernet frame header.
Setting this to a non-default value volition outcome inward the
packet beingness ignored past times the target, or sent to the
incorrect protocol stack.

--arphrd= or -H Use for the ARP hardware type, default=1.
This sets the 16-bit ar$hrd champaign inward the ARP packet.
The normal value is 1 (ARPHRD_ETHER). Most, but not
all, operating systems volition also respond to 6
(ARPHRD_IEEE802). Influenza A virus subtype H5N1 few systems respond to whatever value.

--arppro= or -p Use for the ARP protocol type, default=0x0800.
This sets the 16-bit ar$pro champaign inward the ARP packet.
Most operating systems solely respond to 0x0800 (IPv4)
but only about volition respond to other values every bit well.

--arphln= or -a Set the hardware address length to , default=6.
This sets the 8-bit ar$hln champaign inward the ARP packet.
It sets the claimed length of the hardware address
inward the ARP packet. Setting it to whatever value other than
the default volition brand the packet non RFC compliant.
Some operating systems may still respond to it though.
Note that the actual lengths of the ar$sha in addition to ar$tha
fields inward the ARP packet are non changed past times this
option; it solely changes the ar$hln field.

--arppln= or -P Set the protocol address length to , default=4.
This sets the 8-bit ar$pln champaign inward the ARP packet.
It sets the claimed length of the protocol address
inward the ARP packet. Setting it to whatever value other than
the default volition brand the packet non RFC compliant.
Some operating systems may still respond to it though.
Note that the actual lengths of the ar$spa in addition to ar$tpa
fields inward the ARP packet are non changed past times this
option; it solely changes the ar$pln field.

--arpop= or -o Use for the ARP operation, default=1.
This sets the 16-bit ar$op champaign inward the ARP packet.
Most operating systems volition solely respond to the value 1
(ARPOP_REQUEST). However, only about systems volition respond
to other values every bit well.

--arpspa= or -s Use every bit the source IP address.
The address should endure specified inward dotted quad format;
or the literal string "dest", which sets the source
address to endure the same every bit the target host address.
This sets the 32-bit ar$spa champaign inward the ARP packet.
Some operating systems banking enterprise check this, in addition to volition only
respond if the source address is inside the network
of the receiving interface. Others don't care, and
volition respond to whatever source address.
By default, the outgoing interface address is used.

WARNING: Setting ar$spa to the finish IP address
tin lav disrupt only about operating systems, every bit they assume
at that topographic point is an IP address clash if they have an ARP
asking for their ain address.

--padding= or -A Specify padding after packet data.
Set the padding information to hex value . This information is
appended to the terminate of the ARP packet, after the data.
Most, if non all, operating systems volition ignore any
padding. The default is no padding, although the
Ethernet driver on the sending organization may pad the
packet to the minimum Ethernet frame length.

--llc or -L Use RFC 1042 LLC framing alongside SNAP.
This choice causes the outgoing ARP packets to use
IEEE 802.2 framing alongside a SNAP header every bit described
inward RFC 1042. The default is to utilization Ethernet-II
framing.
arp-scan volition decode in addition to display received ARP packets
inward either Ethernet-II or IEEE 802.2 formats
irrespective of this option.

--vlan= or -Q Use 802.1Q tagging alongside VLAN id .
This choice causes the outgoing ARP packets to use
802.1Q VLAN tagging alongside a VLAN ID of , which should
endure inward the attain 0 to 4095 inclusive.
arp-scan volition ever decode in addition to display received ARP
packets inward 802.1Q format irrespective of this option.

--pcapsavefile= or -W Write received packets to pcap savefile .
This choice causes received ARP responses to endure written
to the specified pcap savefile every bit good every bit beingness decoded
in addition to displayed. This savefile tin lav endure analysed with
programs that empathise the pcap file format, such as
"tcpdump" in addition to "wireshark".

Report bugs or mail suggestions to arp-scan@nta-monitor.com
See the arp-scan homepage at http://www.nta-monitor.com/tools/arp-scan/



Conclusion


arp-scan is a elementary tool yet real powerful.  Those of yous who are familiar alongside Cisco Routers in addition to switches, CheckPoint Firewall in addition to Big-IP F5, yous know it likewise good that sometimes the solely manner to uncovering a device is past times using a arp response. Once you’ve constitute the MAC address, yous tin lav uncovering to a greater extent than information close that device past times matching that MAC address to it’s vendor. It is importing to empathise ARP/MAC responses for penetration tester in addition to it is used heavily for arpspoof in addition to Man-In-The-Middle Attack. It also helps inward cases when person is spoofing IP address in addition to DoS-ing your server. You tin lav yet spoof MAC address easily to evade trace.


All inward all, it’s a useful tool in addition to yous should attempt the commands shown above. It volition assist someday when yous are scratching yous caput inward the oculus of a service outage!


Thanks for reading, practise share.


Resources



Buat lebih berguna, kongsi:
close