Категория > Новости > Мастерская хакера. Подборка полезных инструментов для Windows и Linux - «Новости»

Мастерская хакера. Подборка полезных инструментов для Windows и Linux - «Новости»


18-11-2021, 00:02. Автор: Каролина
по­лез­ней­шие кон­соль­ные тул­зы, во вто­рой — средс­тва авто­мати­зации.

Часть ути­лит из этой статьи прис­лал мне бла­годар­ный под­писчик. Если у тебя тоже есть о чем рас­ска­зать миру — доб­ро пожало­вать в ком­мента­рии.



 

Windows & WSL


 

WSL Host Patcher


Как извес­тно, в Windows 10 и 11 мож­но запус­кать при­ложе­ния для Linux. Сис­тема, которая поз­воля­ет это делать, называ­ется WSL — Windows Subsystem for Linux. WSL (в прос­тонародье — «вес­ло») име­ет две вер­сии, незамыс­ловато наз­ванные WSL и WSL 2. Пер­вая вер­сия выш­ла в 2016 году и уже мораль­но уста­рела. Мас­штаб­но обно­вили сис­тему в 2020 году, в релизе Windows 10 2004 — что­бы не путать, ее тог­да и наз­вали WSL 2. Внут­ри WSL 2 — вир­туаль­ная машина Hyper-V с проб­рошен­ными в нее ресур­сами хос­та.


Ког­да какой‑то про­цесс внут­ри WSL 2 начина­ет слу­шать TCP-порт, wslhost.exe слу­шает этот же порт на 127.0.0.1 хос­та, фак­тичес­ки прок­сируя его наружу, на хост. Проб­лема такого фор­вардин­га в том, что сна­ружи хос­та этот порт недос­тупен, то есть под­нятый на 8080-м пор­те веб‑сер­вис в WSL дос­тупен для хос­та, но не тор­чит в локал­ку.


Ес­ли хочет­ся получить дос­туп к такому сер­вису сна­ружи, а не толь­ко с машины с самой WSL — при­годит­ся WSL Host Patcher. Все, что он дела­ет, — это пат­чит в памяти wslhost.exe, что­бы тот откры­вал соеди­нения не на 127.0.0.1, а на 0.0.0.0, слу­шая соот­ветс­тву­ющий порт на всех интерфей­сах.


 

Wslgit


В про­дол­жение извра­щений с WSL хочу показать малень­кую ути­литу на Rust, которая прос­то тран­сли­рует все вызовы себя в соот­ветс­тву­ющие вызовы git в WSL 2. Зачем это надо? Допус­тим, у тебя есть какой‑то очень боль­шой репози­торий Git внут­ри WSL, а ты работа­ешь в тек­сто­вом редак­торе с хос­та. Что­бы Git кор­рек­тно работал с кодом внут­ри полувир­туаль­ного Linux, нуж­но как‑то тран­сли­ровать вызовы Git с исправ­ленны­ми путями внутрь кон­тей­нера. Wslgit дела­ет ров­но это: исправ­ляет путь, что­бы получить дос­туп из кон­тей­нера к фай­лам хос­та, и запус­кает Git в WSL 2, что­бы выпол­нить нуж­ное дей­ствие. Прос­то и понят­но.


Юз­кей­сов wslgit нем­ного, но иног­да он совер­шенно незаме­ним.


 

Очистка памяти vmmem


Раз уж загово­рили о WSL, упо­мянем еще одну важ­ную проб­лему, из‑за которой порой при­ходит­ся перезаг­ружать совер­шенно исправ­ный компь­ютер с неделя­ми аптай­ма. WSL очень любит агрессив­но кеширо­вать в опе­ратив­ную память, но не спе­шит осво­бож­дать ее, ког­да эта память нуж­на вин­де. В резуль­тате про­цесс vmmem съеда­ет всю опе­ратив­ку, и при­ходит­ся перезаг­ружать­ся.


Ре­шение проб­лемы прос­тое — выпол­нить от рута сле­дующую коман­ду в WSL:


# sh -c "echo 3 > /proc/sys/vm/drop_caches"

Но дол­жен быть и спо­соб получ­ше. Может, ты зна­ешь? Рас­ска­жи в ком­ментах!


 

Web


 

TLS Support Check


TLS.support — это быс­трый спо­соб про­верить, под­держи­вает ли бра­узер сов­ремен­ные фичи TLS. Сер­вис про­веря­ет под­дер­жку одно­разо­вых клю­чей, спи­сок дос­тупных шиф­ров, мгно­вен­ное возоб­новле­ние шиф­рован­ного соеди­нения и некото­рые дру­гие вещи.


TLS.support

На сер­висе мож­но получить код резуль­тата кон­крет­ной про­вер­ки. Удоб­но, если ты хочешь поп­росить кого‑то про­тес­тировать работу и показать резуль­таты.


 

SSH web client


Как‑то раз мне нужен был веб‑тер­минал. Я поис­кал и нашел про­ект Webshell.


Webshell — это пол­ноцен­ный тер­минал пря­мо в окне бра­узе­ра. Он работа­ет как SSH-кли­ент, но для моих задач было дос­таточ­но прос­то под­клю­чить­ся через него к 127.0.0.1 и работать. Сочета­ния кла­виш под­держи­вают­ся, пол­ноэк­ранные прог­раммы вро­де htop и nano — тоже. Что нам еще нуж­но для счастья?


Ес­ли у тебя есть свой сер­вер и ты хочешь иметь воз­можность получать к нему дос­туп из SSH через бра­узер, то это отличный вари­ант.


Ус­танав­лива­ется прог­рамма через Docker:


docker run -d --security-opt seccomp=unconfined -p8018:80 -e ALLOWED_NETWORKS=0.0.0.0/0 bwsw/webshell
Webshell в дей­ствии

Перейти обратно к новости