Powershell හි Reverse socks5 proxy ලිවීම. 1 කොටස

කොටස් 3කින් පර්යේෂණ සහ සංවර්ධන පිළිබඳ කතාවක්. 1 කොටස ගවේෂණාත්මකයි.
බොහෝ බීච් ගස් ඇත - ඊටත් වඩා ප්රතිලාභ.

ගැටලුව ප්රකාශ කිරීම

Pentests සහ RedTeam ප්‍රචාරණ අතරතුර, VPN, RDP, Citrix යනාදී පාරිභෝගිකයාගේ සම්මත මෙවලම් භාවිතා කිරීම සැමවිටම කළ නොහැක. අභ්යන්තර ජාලයට ඇතුල් වීම සඳහා නැංගුරමක් ලෙස. සමහර ස්ථානවල, සම්මත VPN MFA භාවිතයෙන් ක්‍රියා කරන අතර දෘඩාංග ටෝකනයක් දෙවන සාධකය ලෙස භාවිතා කරයි, අනෙක් ඒවා ම්ලේච්ඡ ලෙස නිරීක්ෂණය කරන අතර අපගේ VPN පිවිසුම වහාම දෘශ්‍යමාන වේ, ඔවුන් පවසන පරිදි, එයට ඇතුළත් වන සියල්ල සමඟ, නමුත් අනෙක් ඒවා තිබේ. සරලවම එවැනි ක්රමයක් නැත.

එවැනි අවස්ථාවන්හිදී, අපට නිරන්තරයෙන් ඊනියා “ප්‍රතිලෝම උමං” සෑදිය යුතුය - අභ්‍යන්තර ජාලයේ සිට බාහිර සම්පතකට හෝ අප පාලනය කරන සේවාදායකයකට සම්බන්ධතා. එවැනි උමගක් ඇතුළත, අපට දැනටමත් ගනුදෙනුකරුවන්ගේ අභ්යන්තර සම්පත් සමඟ වැඩ කළ හැකිය.

මෙම ආපසු එන උමං වර්ග කිහිපයක් තිබේ. ඔවුන්ගෙන් වඩාත් ප්රසිද්ධ වන්නේ, ඇත්ත වශයෙන්ම, Meterpreter ය. ප්‍රතිලෝම පෝට් ෆෝවර්ඩිං සහිත SSH උමං සඳහාද හැකර් ජනතාව අතර විශාල ඉල්ලුමක් පවතී. ප්‍රතිලෝම උමං මාර්ග ක්‍රියාත්මක කිරීම සඳහා බොහෝ ක්‍රම ඇති අතර ඒවායින් බොහොමයක් හොඳින් අධ්‍යයනය කර විස්තර කර ඇත.
ඇත්ත වශයෙන්ම, ඔවුන්ගේ පැත්තෙන්, ආරක්ෂක විසඳුම් සංවර්ධකයින් පසෙකට වී එවැනි ක්රියාවන් ක්රියාශීලීව හඳුනා නොගනී.
උදාහරණයක් ලෙස, MSF සැසි නවීන IPS මගින් Cisco හෝ Positive Tech වෙතින් සාර්ථකව අනාවරණය කර ගන්නා අතර, ප්‍රතිලෝම SSH උමගක් ඕනෑම සාමාන්‍ය ෆයර්වෝලයකින් පාහේ අනාවරණය කර ගත හැක.

එබැවින්, හොඳ RedTeam ව්‍යාපාරයක අවධානයට ලක් නොවී සිටීම සඳහා, අපි සම්මත නොවන ක්‍රම භාවිතා කරමින් ප්‍රතිලෝම උමගක් ගොඩනගා ගත යුතු අතර ජාලයේ සැබෑ මෙහෙයුම් මාදිලියට හැකි තරම් සමීපව අනුගත විය යුතුය.

අපි සමාන දෙයක් සොයා ගැනීමට හෝ සොයා ගැනීමට උත්සාහ කරමු.

ඕනෑම දෙයක් නිර්මාණය කිරීමට පෙර, අපට ලබා ගැනීමට අවශ්‍ය ප්‍රති result ලය කුමක්ද, අපගේ සංවර්ධනය කළ යුතු කාර්යයන් මොනවාද යන්න අප තේරුම් ගත යුතුය. අපට උපරිම රහසිගත ආකාරයෙන් වැඩ කිරීමට හැකි වන පරිදි උමග සඳහා අවශ්‍යතා මොනවාද?

එක් එක් අවස්ථාව සඳහා එවැනි අවශ්‍යතා බෙහෙවින් වෙනස් විය හැකි බව පැහැදිලිය, නමුත් සේවා පළපුරුද්ද මත පදනම්ව, ප්‍රධාන ඒවා හඳුනාගත හැකිය:

  • Windows-7-10 OS මත වැඩ කරන්න. බොහෝ ආයතනික ජාල වින්ඩෝස් භාවිතා කරන බැවින්;
  • ips භාවිතයෙන් මෝඩ සවන් දීම වැළැක්වීම සඳහා සේවාදායකයා SSL හරහා සේවාදායකයට සම්බන්ධ කරයි;
  • සම්බන්ධ වන විට, සේවාලාභියා අවසරය සහිත ප්‍රොක්සි සේවාදායකයක් හරහා වැඩ කිරීමට සහාය විය යුතුය, මන්ද බොහෝ සමාගම්වල අන්තර්ජාලයට ප්‍රවේශය සිදුවන්නේ ප්‍රොක්සියක් හරහාය. ඇත්ත වශයෙන්ම, සේවාදායක යන්ත්රය ඒ ගැන කිසිවක් නොදන්නවා විය හැකි අතර, ප්රොක්සි විනිවිද පෙනෙන ආකාරයෙන් භාවිතා වේ. නමුත් අපි එවැනි ක්රියාකාරිත්වය සැපයිය යුතුය;
  • සේවාදායක කොටස සංක්ෂිප්ත සහ අතේ ගෙන යා හැකි විය යුතුය;
    පාරිභෝගික ජාලය තුළ වැඩ කිරීමට, ඔබට සේවාදායක යන්ත්‍රය මත OpenVPN ස්ථාපනය කර ඔබේ සේවාදායකයට සම්පූර්ණ උමගක් නිර්මාණය කළ හැකි බව පැහැදිලිය (වාසනාවකට මෙන්, openvpn සේවාදායකයින්ට ප්‍රොක්සියක් හරහා ක්‍රියා කළ හැකිය). නමුත්, පළමුව, මෙය සැමවිටම ක්‍රියා නොකරනු ඇත, මන්ද අප එහි ප්‍රාදේශීය පරිපාලකයින් නොවිය හැකි අතර, දෙවනුව, එය එතරම් ශබ්දයක් ඇති කරයි, යහපත් SIEM හෝ HIPS වහාම අපව “උදුරා ගනී”. ඉතා මැනවින්, අපගේ සේවාදායකයා ඊනියා පේළිගත විධානයක් විය යුතුය, උදාහරණයක් ලෙස බොහෝ bash shells ක්‍රියාත්මක කර විධාන රේඛාව හරහා දියත් කරනු ලැබේ, උදාහරණයක් ලෙස, macro වචනයකින් විධාන ක්‍රියාත්මක කිරීමේදී.
  • අපගේ උමග බහු-නූල් සහිත විය යුතු අතර බොහෝ සම්බන්ධතා සඳහා එකවර සහාය විය යුතුය;
  • සේවාදායක-සේවාදායක සම්බන්ධතාවයට යම් ආකාරයක අවසරයක් තිබිය යුතුය, එවිට උමග ස්ථාපිත කර ඇත්තේ අපගේ සේවාදායකයා සඳහා පමණක් වන අතර, අපගේ සේවාදායකයට නිශ්චිත ලිපිනය සහ වරායට පැමිණෙන සෑම කෙනෙකුටම නොවේ. ඉතා මැනවින්, බළලුන් හෝ මුල් වසමට අදාළ වෘත්තීය මාතෘකා සහිත ගොඩබෑමේ පිටුවක් "තෙවන පාර්ශවීය පරිශීලකයින්" සඳහා විවෘත විය යුතුය.
    උදාහරණයක් ලෙස, පාරිභෝගිකයා වෛද්‍ය සංවිධානයක් නම්, සායන සේවකයෙකු ප්‍රවේශ වූ සම්පත පරීක්ෂා කිරීමට තීරණය කරන තොරතුරු ආරක්ෂණ පරිපාලකයෙකු සඳහා, ඖෂධ නිෂ්පාදන සහිත පිටුවක්, රෝග විනිශ්චය පිළිබඳ විස්තරයක් සහිත විකිපීඩියාව හෝ වෛද්‍ය කොමරොව්ස්කිගේ බ්ලොග් අඩවිය යනාදිය. විවෘත කළ යුතුය.

පවතින මෙවලම් විශ්ලේෂණය

ඔබේම බයිසිකලයක් ප්‍රතිනිර්මාණය කිරීමට පෙර, ඔබ දැනට පවතින බයිසිකල් පිළිබඳ විශ්ලේෂණයක් කළ යුතු අතර අපට එය සැබවින්ම අවශ්‍යද යන්න තේරුම් ගත යුතු අතර, බොහෝ විට, එවැනි ක්‍රියාකාරී බයිසිකලයක අවශ්‍යතාවය ගැන සිතුවේ අප පමණක් නොවේ.

අන්තර්ජාලයේ ගූගල් කිරීම (අපි සාමාන්‍යයෙන් ගූගල් කරන බව පෙනේ), මෙන්ම “ප්‍රතිලෝම මේස්” යන මූල පද භාවිතා කර Github මත සෙවීමෙන් බොහෝ ප්‍රතිඵල ලබා දුන්නේ නැත. මූලික වශයෙන්, ඒ සියල්ල ප්‍රතිලෝම වරාය ඉදිරියට යැවීම සහ එයට සම්බන්ධ සෑම දෙයක්ම සමඟ ssh උමං තැනීමට පැමිණේ. SSH උමං වලට අමතරව, විසඳුම් කිහිපයක් තිබේ:

github.com/klsecservices/rpivot
Kaspersky Lab හි යාලුවනේ සිට ප්‍රතිලෝම උමගක් දිගුකාලීනව ක්‍රියාත්මක කිරීම. මෙම පිටපත කුමක් සඳහාද යන්න නමෙන් පැහැදිලි වේ. Python 2.7 හි ක්‍රියාත්මක කර ඇති, උමග ක්‍රියා කරන්නේ පැහැදිලි පෙළ ප්‍රකාරයෙනි (දැන් පැවසීම මෝස්තරයකි - හලෝ RKN)

github.com/tonyseek/rsocks
පයිතන් හි තවත් ක්‍රියාත්මක කිරීමක්, පැහැදිලි පෙළෙහි ද, නමුත් වැඩි හැකියාවන් ඇත. එය මොඩියුලයක් ලෙස ලියා ඇති අතර ඔබේ ව්‍යාපෘතිවලට විසඳුම ඒකාබද්ධ කිරීම සඳහා API එකක් ඇත.

github.com/llkat/rsockstun
github.com/mis-team/rsockstun
පළමු සබැඳිය Golang හි ප්‍රතිලෝම සෝක්ස් ක්‍රියාත්මක කිරීමේ මුල් පිටපතයි (සංවර්ධකයා විසින් සහාය නොදක්වයි).
දෙවන සබැඳිය Golang හි අතිරේක විශේෂාංග සහිත අපගේ සංශෝධනයයි. අපගේ අනුවාදයේ, අපි SSL ක්‍රියාත්මක කළෙමු, NTLM අවසරය සහිත ප්‍රොක්සියක් හරහා වැඩ කරන්න, සේවාලාභියා මත අවසරය, වැරදි මුරපදයකදී ගොඩබෑමේ පිටුවක් (හෝ ඒ වෙනුවට, ගොඩබෑමේ පිටුවට යළි-යොමු කිරීමක්), බහු-නූල් මාදිලිය (එනම් පුද්ගලයන් කිහිප දෙනෙකු එම අවස්ථාවේදීම උමග සමඟ වැඩ කළ හැක) , සේවාදායකයා ජීවතුන් අතර සිටිනවාද නැද්ද යන්න තීරණය කිරීම සඳහා පිං කිරීමේ පද්ධතියකි.

github.com/jun7th/tsocks
පයිතන් හි අපගේ “චීන මිතුරන්” වෙතින් ප්‍රතිලෝම සෝක්ස් ක්‍රියාත්මක කිරීම. එහිදී, කම්මැලි සහ "අමරණීය" සඳහා, චීන ජාතිකයන් විසින් එකලස් කරන ලද සහ භාවිතය සඳහා සූදානම් කර ඇති සූදානම් කළ ද්විමය (exe) ඇත. මෙහිදී, ප්‍රධාන ක්‍රියාකාරීත්වයට අමතරව මෙම ද්වීතියේ අඩංගු විය හැකි වෙනත් දේ දන්නේ චීන දෙවියන් පමණි, එබැවින් ඔබේම අනතුරකින් සහ අවදානමකින් භාවිතා කරන්න.

github.com/securesocketfunneling/ssf
ප්‍රතිලෝම සෝක්ස් සහ තවත් බොහෝ දේ ක්‍රියාත්මක කිරීම සඳහා C++ හි ඉතා රසවත් ව්‍යාපෘතියකි. ප්‍රතිලෝම උමඟට අමතරව, එය වරාය ඉදිරියට යැවීම, විධාන කවචයක් සෑදීම යනාදිය කළ හැකිය.

MSF මීටර පරිවර්තකය
මෙන්න, ඔවුන් පවසන පරිදි, අදහස් නොමැත. ඊටත් වඩා අඩු හෝ වැඩි උගත් හැකර්වරුන් මෙම දෙය ගැන ඉතා හුරුපුරුදු වන අතර ආරක්ෂක මෙවලම් මගින් එය කෙතරම් පහසුවෙන් හඳුනාගත හැකිද යන්න තේරුම් ගන්න.

ඉහත විස්තර කර ඇති සියලුම මෙවලම් සමාන තාක්‍ෂණයක් භාවිතයෙන් ක්‍රියා කරයි: පෙර සූදානම් කළ ක්‍රියාත්මක කළ හැකි ද්විමය මොඩියුලයක් ජාලය තුළ ඇති යන්ත්‍රයක් මත දියත් කරනු ලැබේ, එය බාහිර සේවාදායකයක් සමඟ සම්බන්ධතාවයක් ඇති කරයි. සේවාදායකය SOCKS4/5 සේවාදායකයක් ධාවනය කරන අතර එය සම්බන්ධතා පිළිගෙන ඒවා සේවාලාභියාට රිලේ කරයි.

ඉහත සියලු මෙවලම්වල අවාසිය නම්, සේවාලාභී යන්ත්‍රයේ Python හෝ Golang ස්ථාපනය කර තිබීමයි (උදාහරණයක් ලෙස, සමාගම් අධ්‍යක්ෂවරයෙකුගේ හෝ කාර්යාල සේවකයන්ගේ යන්ත්‍රවල Python ස්ථාපනය කර ඇති බව ඔබ බොහෝ විට දැක තිබේද?) හෝ කලින් එකලස් කර තිබීමයි. binary (ඇත්ත වශයෙන්ම python) මෙම යන්ත්‍රය මතට ඇදගෙන ගොස් එක් බෝතලයක ස්ක්‍රිප්ට්) මෙම ද්විමය දැනටමත් එහි ධාවනය කළ යුතුය. exe එකක් බාගත කර එය දියත් කිරීම දේශීය ප්‍රති-වයිරසයක් හෝ HIPS සඳහා අත්සනක් ද වේ.

පොදුවේ ගත් කල, නිගමනයම යෝජනා කරයි - අපට පවර්ෂෙල් විසඳුමක් අවශ්‍යයි. දැන් තක්කාලි අප වෙත පියාසර කරනු ඇත - ඔවුන් පවසන්නේ පවර්ෂෙල් දැනටමත් හක්නී කර ඇති බවත්, එය නිරීක්ෂණය කර ඇති බවත්, අවහිර කර ඇති බවත් ය. සහ යනාදි. ඇත්ත වශයෙන්ම, සෑම තැනකම නොවේ. අපි වගකීමෙන් ප්‍රකාශ කරනවා. මාර්ගය වන විට, අවහිර කිරීම මඟ හැරීමට ක්‍රම රාශියක් ඇත (මෙහි නැවතත් hello RKN 🙂 පිළිබඳ විලාසිතාමය වාක්‍ය ඛණ්ඩයක් ඇත), powershell.exe -> cmdd.exe හි මෝඩ නැවත නම් කිරීමෙන් ආරම්භ වී powerdll සමඟ අවසන් වේ.

අපි නව නිපැයුම් ආරම්භ කරමු

මුලින්ම අපි Google මත බලන බව පැහැදිලිය ... අපි මෙම මාතෘකාව පිළිබඳ කිසිවක් සොයා නොගනු ඇත (යමෙකු එය සොයාගෙන තිබේ නම්, අදහස් දැක්වීම්වල සබැඳි පළ කරන්න). ඇත්තේ පමණි ක්‍රියාත්මක කිරීම Powershell මත Socks5, නමුත් මෙය සාමාන්ය "සෘජු" sox වේ, එහි අවාසි ගණනාවක් ඇත (අපි ඒවා ගැන පසුව කතා කරමු). ඇත්ත වශයෙන්ම, ඔබට ඔබේ අතේ සුළු චලනයකින් එය ප්‍රතිලෝම එකක් බවට පත් කළ හැකිය, නමුත් මෙය තනි නූල් සහිත සෝක්ස් පමණක් වනු ඇත, එය අපට අවශ්‍ය දේ නොවේ.

එබැවින්, අපි සූදානම් කළ කිසිවක් සොයාගෙන නැත, එබැවින් අපට තවමත් අපගේ රෝදය නැවත සොයා ගැනීමට සිදුවනු ඇත. අපි අපේ බයිසිකලය සඳහා පදනම ලෙස ගනිමු අපේ සංවර්ධනය Golang හි reverse sox, සහ අපි powershell හි ඒ සඳහා සේවාදායකයකු ක්‍රියාත්මක කරමු.

RSocksTun
ඉතින් කොහොමද rsockstun වැඩ කරන්නේ?

RsocksTun හි ක්‍රියාකාරිත්වය (මෙතැන් සිට rs ලෙස හැඳින්වේ) මෘදුකාංග සංරචක දෙකක් මත පදනම් වේ - Yamux සහ Socks5 සේවාදායකය. Socks5 සේවාදායකය සාමාන්‍ය දේශීය socks5 වේ, එය සේවාලාභියා මත ක්‍රියාත්මක වේ. සහ එයට සම්බන්ධතා මල්ටිප්ලෙක්ස් කිරීම (මල්ටි ත්‍රෙඩින් ගැන මතකද?) yamux භාවිතයෙන් සපයනු ලැබේ (තවත් බහුකාර්යයක්) මෙම යෝජනා ක්‍රමය මඟින් ඔබට සේවාදායක socks5 සේවාදායකයන් කිහිපයක් දියත් කිරීමට සහ ඒවාට බාහිර සම්බන්ධතා බෙදා හැරීමට ඉඩ සලසයි, ඒවා එක් TCP සම්බන්ධතාවයක් හරහා (මීටර්ප්‍රේටරයේ මෙන්) සේවාදායකයාගෙන් සේවාදායකයට යොමු කරයි, එමඟින් බහු-නූල් මාදිලියක් ක්‍රියාත්මක කරයි, එය නොමැතිව අපි එසේ නොකරමු. අභ්යන්තර ජාල තුළ සම්පූර්ණයෙන්ම වැඩ කිරීමට හැකි වේ.

yamux ක්‍රියා කරන ආකාරයෙහි සාරය නම්, එය එක් එක් පැකට්ටුව සඳහා 12-byte ශීර්ෂයක ආකාරයෙන් ක්‍රියාත්මක කරමින්, අමතර ජාල ධාරා ස්ථරයක් හඳුන්වා දීමයි. (මෙහි අපි හිතාමතාම නූල් වෙනුවට “ප්‍රවාහය” යන වචනය භාවිතා කරමු, එවිට ක්‍රමලේඛ ප්‍රවාහයක් “නූල්” සමඟ පාඨකයා ව්‍යාකූල නොකිරීමට - අපි මෙම ලිපියෙන් මෙම සංකල්පය ද භාවිතා කරමු). yamux ශීර්ෂයේ ප්‍රවාහ අංකය, ප්‍රවාහය ස්ථාපනය කිරීම/අවසන් කිරීම සඳහා ධජ, මාරු කළ බයිට් ගණන සහ මාරු කිරීමේ කවුළුවේ ප්‍රමාණය අඩංගු වේ.

Powershell හි Reverse socks5 proxy ලිවීම. 1 කොටස

ප්‍රවාහයක් ස්ථාපනය කිරීමට/අවසන් කිරීමට අමතරව, ස්ථාපිත සන්නිවේදන නාලිකාවේ ක්‍රියාකාරිත්වය නිරීක්ෂණය කිරීමට ඔබට ඉඩ සලසන Keepalive යාන්ත්‍රණයක් yamux ක්‍රියාත්මක කරයි. Yamux සැසියක් නිර්මාණය කිරීමේදී Keeplive පණිවිඩ යාන්ත්‍රණයේ ක්‍රියාකාරිත්වය වින්‍යාස කර ඇත. ඇත්ත වශයෙන්ම, සැකසුම් වල ඇත්තේ පරාමිති දෙකක් පමණි: සක්රිය / අක්රිය කිරීම සහ තත්පර කිහිපයකින් පැකට් යැවීමේ වාර ගණන. Keepalive පණිවිඩ yamux සේවාදායකයක් හෝ yamux සේවාලාභියෙකු විසින් යැවිය හැක. Keepalive පණිවිඩයක් ලැබෙන විට, දුරස්ථ පාර්ශවය එයට ප්‍රතිචාර දැක්විය යුත්තේ හරියටම ලැබුණු පණිවිඩ හඳුනාගැනීම (ඇත්ත වශයෙන්ම අංකයක්) යැවීමෙනි. පොදුවේ ගත් කල, Keepalive එකම ping වේ, yamux සඳහා පමණි.

මල්ටිප්ලෙක්සර් හි සම්පූර්ණ මෙහෙයුම් තාක්‍ෂණය: පැකට් වර්ග, සම්බන්ධතා සැකසුම සහ අවසන් කිරීමේ කොඩි, සහ දත්ත හුවමාරු යාන්ත්‍රණය විස්තරාත්මකව විස්තර කෙරේ පිරිවිතර yamux වෙත.

පළමු කොටසේ නිගමනය

එබැවින්, ලිපියේ පළමු කොටසේදී, අපි ප්‍රතිලෝම උමං සංවිධානය කිරීම සඳහා මෙවලම් කිහිපයක් සමඟ දැන හඳුනා ගත්තෙමු, ඒවායේ වාසි සහ අවාසි දෙස බැලුවෙමු, Yamux මල්ටිප්ලෙක්සර් ක්‍රියාත්මක කිරීමේ යාන්ත්‍රණය අධ්‍යයනය කළ අතර අලුතින් සාදන ලද පවර්ෂෙල් මොඩියුලය සඳහා මූලික අවශ්‍යතා විස්තර කළෙමු. ඊළඟ කොටසේදී අපි මුල සිටම ප්‍රායෝගිකව මොඩියුලයම සංවර්ධනය කරමු. ඉදිරියට පැවැත්වේ. මාරු කරන්න එපා :)

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න