Protection
Info
Semua kode yang ada pada catatan ini dapat di unduh dari repo https://github.com/muhammadfarras/Python-Etichal-Hacking-From-Scratch
Sebelum melakukan reconainsasce, atau pengumpulan informasi, kita harus memastikan identitas kita terlindungi. Karena jika tidak, maka kita akan mudah untuk dilacak. Indentitas kita saat mengumpulkan informasi dapat dilacak dengan beberapa parameter, namn yang paling sering adalah dengan melacak IP address dan MAC address.
-
Mask the IP adress Untuk menopengi ip public, kita dapat menggunakan jasa Virtual Private Network. Penting untuk diingat, jangan terlalu mempercayakan trafic kita ke penyedia jasa VPN. Dari pandangan keamanan, menggunakan VPN sama saja memindahkan trafik kita secara penuh 1 dari Internet Service Provider (ISP) ke perusahaan lain yang menyediakan VPN service. Bahkan, berhati-hatilah dalam menggunakan VPN service yang GRATISAN. Karena banyak dari penyedia VPN gratisan tersebut memasukan malware atau menggunakan resource mesin kita untuk tujuan lain seperti, bitcoin mining. Bahkan ada beberapa VPN membocorkan domain name server (DNS), sebuah server yang digunakan untuk memetakan nama wesbite ke IP address, walaupun dengan alibi menggunakan itu untuk menopengi IP address kita.
-
Spoofing MAC address Bagaimanapun, ketika kita melakukan scanning pada local network, kita dapat terlacak dari MAC address (Media Access Control) kita. Mesin kita memliki Network Interface Card (NIC), yang digunakan untuk berkomunikasi dengan komputer lain. Didalam NIC terdapat MAC address. InsyaAllah pada setelah inis kita akan menggati identitas MAC address sehingga dapat mengelabui mesin lain termasuk Instrusion Detection System (IDS) ketika kita berkomunikasi dengan mesin lain.
Transforming MAC address
Kita akan menggunakan command ifconfig
untuk mengubah MAC address. Bawaanya command ini sudah terinstall ketika menginstall Operatign System, namun jika belum anda harus menginstall package net-tools pada mesin anda.
Setelah berhasil menginstall package net-tools, anda dapat melihat MAC address anda menggunakan perintah tersebut.
ifconfig
# Result
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:8e:a9:07:be txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 28:d2:44:ba:92:dd txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 268 bytes 21440 (20.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 268 bytes 21440 (20.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.16 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::cb9f:4295:f581:e7ff prefixlen 64 scopeid 0x20<link>
ether 18:cf:5e:ea:3e:01 txqueuelen 1000 (Ethernet)
RX packets 233896 bytes 331772750 (316.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 99376 bytes 10940300 (10.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ada empat nilai disini, namun kita hanya fokus kebeberapa saja, eth0
, wlan0
, dam lo
. eth0
adalah nama dari Network Interface Card (NIC), dimana lo
adalah loopback adapter, dan wlan0
adalah WIFI LAN.
Untuk mengganti MAC addres interface wifi lan kita, harus dipastikan interface tersebut tidak hidup.Sehingga kita harus mematikannya terlebih dahulu sebelum menggantinya. Untuk mematikan intrafe tersebtu anda dapat menggunakan perintah dibawah ini.
Untuk mengganti MAC addres anda dapat menggunakn perintah dibawah ini
To change the MAC address, you can run the following command. Let's say you want your new MAC address to be 00:11:22:33:44:55 . Here, you can do the following:
Selanjutnya aktifkan lagi interface wlan0
Sekarang mari kita lihat MAC addres dari interface wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.77 netmask 255.255.255.0 broadcast 192.168.1.255
ether 12:bb:34:cc:56:ff txqueuelen 1000 (Ethernet) # (1)!
RX packets 337967 bytes 331974737 (316.5 MiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 63154 bytes 14786090 (14.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- ether dari interface
wlan0
berubah menjadi 123456:ff
Dapat kita lihat MAC address berhasil berubah. sekarang, jika jika kita ingin scan sesutu pada jaringan, MAC address ini yang akan ditampilkan dari pada MAC address asli kita.
Bukti MAC kita sekarang telah menipu adalah dengan melihat traffic ARP2 menggunakan perintah tcpdump
untuk melihat trafik ARP respone dan request yang terjadi pada mesin kita.
sudo tcpdump -i wlan0 arp
# Hasil
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
00:03:11.261658 ARP, Request who-has 192.168.1.1 tell 192.168.1.84, length 28
00:03:11.859366 ARP, Request who-has 192.168.1.53 tell 192.168.1.1, length 46
00:03:12.577446 ARP, Request who-has 192.168.1.77 tell 192.168.1.1, length 46
00:03:12.577452 ARP, Reply 192.168.1.77 is-at 12:bb:34:cc:56:ff (oui Unknown), length 28
00:03:12.814945 ARP, Request who-has 192.168.1.53 tell 192.168.1.1, length 46
00:03:13.820591 ARP, Request who-has 192.168.1.53 tell 192.168.1.1, length 46
Tip
Penggunaan ifconfig
karadluasa walaupun masih banyak dari praktisi jaringan dan keamanan yang menggunakan.Perintah IP
adalah alternatif dan pengganti penggunaan ifconfig
. Lihat catatan tentang perintah ifconfig dan IP
Creating python script
Python memliki pustaka bawaan yang dapat digunakan untuk menjalankan system command menggunakan subprocess
. Library ini dapat berinteraksi dengan OS terkait.
Untuk menjalankan command, subprocess
memliki method run
. Menggunakan method ini kita dapat mengeksekusi system commands pada OS. katakan kita ingin melihat informasi network interface wlan0, maka perintahnya adalah;
Kode untuk menampilkan informasi interface wlan0
Output
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.77 netmask 255.255.255.0 broadcast 192.168.1.255
ether 12:bb:34:cc:56:ff txqueuelen 1000 (Ethernet)
RX packets 422366 bytes 384440053 (366.6 MiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 79664 bytes 19800255 (18.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
CompletedProcess(args='ifconfig wlan0', returncode=0)
Fungsi ini memiliki parameter wajib yang berisikan perintah, command. Parameter opsional lainnya, shell=True
, artinya kita ingin menampilkan nilai keluaran dari perintah tersebut pada console. Dan perlu diingat, setiap command yang ada pada parameter perintah tersebut pada dasarnya sama dengan jika kita menulis pada terminal langsung. Maka dari itu, perintah yang memerlukan root privilege juga mewajibkan kode python tersebut dijalankan dengan root user atau group sudo user pula.
Python version warning
Fungsi run
pada modul subprocess baru ada pada versi python 3.5 keatas. python doc
now we can use python to change our MAC address, here is the full code to achive that goal.
change-mac.py
# change-mac.py
import subprocess
# Set the interface
interface = 'wlan0'
# Set the new MAC address
new_macaddress = '12:34:56:78:90:01'
# First information about running script
print("Change MAC addres of interface \x1b[1;32;1m%s\x1b[0m to \x1b[1;31;1m%s\x1b[0m"%(interface, new_macaddress))
# Shutdown the interface
print ('shutdown the interface \x1b[1;31;1m%s\x1b[0m' %(interface))
subprocess.run(['ifconfig',interface, 'down'])
# Change MAC addr
print ('\x1b[1;32;1m%s\x1b[0m'%('Changing process'))
subprocess.run( ['ifconfig', interface, 'hw', 'ether', new_macaddress])
print ('MAC address change to \x1b[1;32;1m%s\x1b[0m'%(new_macaddress))
# Turnin up interface
subprocess.run(["ifconfig", interface, "up"])
print("network interfaced turned \x1b[1;32;1m%s\x1b[0m"%("On"))
try:
while True:
pass
except KeyboardInterrupt:
print("\nStarting to change the real MAC address")
print("Get the real MAC address ",end="")
realone = subprocess.run(["ethtool -P wlan0 | awk '{print $3}'"], shell=True, capture_output=True).stdout.decode().replace("\n","")
print("\nThe Real MAC Address \x1b[1;31;1m%s\x1b[0m"%realone)
print("Turn down wlan interface")
subprocess.run(["ifconfig",interface,"down"])
print("\tWLAN is Down")
print("Change MAC address")
subprocess.run ("ifconfig wlan0 hw ether "+realone, shell=True)
print("\t Done")
print("Turnin on interface again")
subprocess.run(["ifconfig wlan0 up"], shell=True)
After that you will see that your MAC address are change to 12:34:56:78:90:01
18\:cf\:5e\:ea\:3e\:01
ifconfig wlan0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 18:cf:5e:ea:3e:01 txqueuelen 1000 (Ethernet)
RX packets 642027 bytes 516313066 (492.3 MiB)
RX errors 0 dropped 3 overruns 0 frame 0
TX packets 132437 bytes 30581725 (29.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Untuk mengembalina ethernet anda, ada dapat menggunakan perintah ethtool, fungsi tersebut akan menampilkan alamat permanen dari MAC addres anda. script lengkapnya dibawah ini
Namun untuk kode change-mac.py
sudah ada script untuk mengembalikan MAC address aslinya
Summary
In this chapter, we learned about the basics of networking and how we can protect ourselves on a local network by spoofing our MAC address for scanning purposes. This chapter helped us get a deeper insight into the networking aspects of the computer system, as well as how we can use Python to protect and mask our identity in a local network
-
Maksud mempercayakan semua trafik ini berkaitan dengan full tunnel VPN. Untuk catatan tentang VPN dapaat melihat ke Virtual Private Network dan untuk Split tunneling VPN ↩
-
devices in a network periodically send ARP responses to other devices in a network to let them know of their current IP and MAC addresses. ↩