Колкото и да съм развълнуван първоначално, когато хвана обратна черупка с netcat, ентусиазмът ми бързо намалява, когато си спомня колко ужасно ограничени са тези черупки. Затова реших да съставя списък с полезни команди, които правят тези черупки много по-използваеми. Надяваме се, че след като прочетете това, ще можете да навигирате във вашите обратни черупки толкова лесно, колкото и ssh връзка.

1. Създайте TTY с Python

Това вероятно е еднолично най-голямото подобрение, което можете да направите във вашата обвивка на netcat. PTY е библиотека за функционалност на псевдотерминал, която е част от стандартната библиотека на Python. Ако отдалечената система има Python, имате псевдо-терминал само в един ред:

python -c ‘import pty;pty.spawn(“/bin/bash”)’

За разлика от стартирането на bash -i, PTY ви дава възможност да изпълнявате команди като su за влизане в други локални акаунти или ssh за влизане в други хостове.

Pelebus направи "страхотен списък от едноредови" за други начини за създаване на интерактивни bash процеси. Някои от тези методи обаче може да не са в състояние да включат част от функционалността, която ще добавим в следващите стъпки.

2. Довършване на раздел със STTY

Това е страхотна функция, която ми липсва винаги, когато се опитвам да въвеждам дълги файлови пътища или да избягвам грешното въвеждане на име на файл. Има обаче няколко включени стъпки и обикновено се налага да ровя в бележките, за да ги намеря всички.

Това може да се обърка, ако все още нямате функционалност на псевдотерминал. Ако не можете да изпълните командата python в Стъпка 1, опитайте това на свой собствен риск.

Първо, задайте фона на вашата netcat обвивка, като напишете:

Ctrl+z

Това ще изглежда така, сякаш сте загубили черупката си. Не се тревожете! Ще си го върнем. След това във вашия локален тип обвивка:

stty raw -echo

И накрая, поставете на преден план обвивката на netcat, като напишете:

fg + [Enter x 2]

Това трябва да върне вашата обвивка с автоматично довършване на раздели!

3. Поддържайте го чист; Изчистване на екрана

Понякога е хубаво да можете да работите с чист лист и да премахнете цялата бъркотия в терминал. За да направим това в netcat shell, трябва да изпълним две команди.

В обвивка на вашата локална машина въведете:

echo $TERM

Трябва да получите някакъв резултат като отговор. В зависимост от това как е настроена вашата система, този изход може да варира (screen, xterm и т.н.). По подразбиране в Kali Linux $TERM е зададено на screen.

В типа обвивка netcat:

export TERM=screen

Сега можете да изчистите екрана си!

Реинициализирайте терминала (по избор)

Обратно в обвивката на netcat, можем да инициализираме отново терминала, като напишем:

reset

Трябва да получите подкана, която ви пита "Terminal Type?" това е мястото, където въвеждате резултата от командата echo $TERM.

4. Урок по история

Кой от нас не е сбъркал малко дълга команда и не е пожелал да върнете командата обратно с натискане на стрелката нагоре? Сега ти можеш!

export SHELL=bash

Това е!

5. Голям екран

Понякога, когато въвеждате дълъг текст с един ред в обвивка на netcat по подразбиране, ви свършва място на реда и текстът започва да се увива обратно и да се презаписва. Това е ужасно. Ние нямаме нужда от това.

За да видите размера на вашия локален тип машина:

stty size

Това връща две числа (редове, колони).

За да направите netcat терминала по-голям (да речем 100 x 100), задайте променливите rows и cols така:

stty rows 100 cols 100

Допълнителни ресурси

Ако се интересувате от други начини за добавяне на функционалност към обвивките на netcat или просто искате да прочетете повече по тази тема, ето някои ресурси, които намерих за полезни: