Android

Ang utos ng Netcat (nc) na may mga halimbawa

Use Netcat to Spawn Reverse Shells & Connect to Other Computers [Tutorial]

Use Netcat to Spawn Reverse Shells & Connect to Other Computers [Tutorial]

Talaan ng mga Nilalaman:

Anonim

Ang Netcat (o nc) ay isang utility-utility na nagbabasa at nagsusulat ng data sa mga koneksyon sa network, gamit ang TCP o UDP protocol. Ito ay isa sa mga pinakamalakas na tool sa network at mga administrador ng sistema ng arsenal at ito ay itinuturing bilang isang kutsilyo ng Swiss hukbo ng mga tool sa networking.

Ang Netcat ay cross-platform at magagamit ito para sa Linux, macOS, Windows, at BSD. Maaari mong gamitin ang Netcat upang i-debug at subaybayan ang mga koneksyon sa network, i-scan para sa bukas na mga port, ilipat ang data, bilang isang proxy at marami pa. Ang pakete ng Netcat ay paunang naka-install sa macOS at tanyag na mga pamamahagi ng Linux tulad ng Ubuntu.

Netcat Syntax

Ang pinaka pangunahing syntax ng utility ng Netcat ay tumatagal ng sumusunod na form:

nc host port

Sa Ubuntu, maaari mong gamitin ang alinman sa netcat o nc . Pareho silang symlinks sa openBSD bersyon ng Netcat.

Bilang default, susubukan ng Netcat na magsimula ng koneksyon sa TCP sa tinukoy na host at port. Kung nais mong magtaguyod ng koneksyon sa UDP, gamitin ang -u pagpipilian:

nc -u host port

Pag-scan ng Port

Ang mga pag-scan ng mga port ay isa sa mga pinaka-karaniwang gamit para sa Netcat. Maaari mong mai-scan ang isang solong port o isang port range.

Halimbawa upang mag-scan para sa bukas na mga port sa saklaw ng 20-80 gagamitin mo ang sumusunod na utos:

nc -z -v 10.10.8.8 20-80

Ang opsyon na -z ay magsasabi sa nc mag-scan lamang para sa bukas na mga port, nang walang pagpapadala ng anumang data sa kanila at ang pagpipilian na -v upang magbigay ng mas maraming impormasyon ng pandiwa.

Ang output ay magiging hitsura ng isang bagay tulad nito:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

Maaari mo ring gamitin ang Netcat upang mahanap ang software ng server at ang bersyon nito. Halimbawa, kung magpadala ka ng isang utos na "EXIT" sa server sa default na SSH port 22:

echo "EXIT" | nc 10.10.8.8 22

Ang output ay magiging hitsura ng isang bagay tulad nito:

SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.

Upang mag-scan para sa mga UDP port ay idagdag lamang ang -u pagpipilian sa utos tulad ng ipinakita sa ibaba:

nc -z -v -u 10.10.8.8 20-80

Sa karamihan ng mga sitwasyon, ang Nmap ay isang mas mahusay na tool kaysa sa Netcat para sa kumplikadong pag-scan ng port.

Pagpapadala ng mga File sa pamamagitan ng Netcat

Maaaring magamit ang Netcat upang ilipat ang data mula sa isang host sa isa pa sa pamamagitan ng paglikha ng isang pangunahing modelo ng kliyente / server.

Gumagana ito sa pamamagitan ng pagtatakda ng Netcat upang makinig sa isang tukoy na port (gamit ang -l opsyon) sa pagtanggap ng host at pagkatapos ay magtatatag ng isang regular na koneksyon ng TCP mula sa iba pang host at ipadala ang file sa ibabaw nito.

Sa pagtanggap tumakbo ang sumusunod na utos na magbubukas sa port 5555 para sa papasok na koneksyon at mag-redirect ang output sa file:

nc -l 5555 > file_name

Mula sa pagpapadala ng host kumonekta sa pagtanggap ng host at ipadala ang file:

nc receiving.host.com 5555 < file_name

Upang maglipat ng isang direktoryo maaari mong gamitin ang tar upang i-archive ang direktoryo sa source host at kunin ang archive sa host ng patutunguhan.

Sa pagtanggap ng host itakda ang tool ng Netcat upang makinig para sa isang papasok na koneksyon sa port 5555. Ang papasok na data ay piped sa utos ng tar na kung saan ay kunin ang archive:

nc -l 5555 | tar xzvf -

Sa pagpapadala ng host pack ng direktoryo at ipadala ang data sa pamamagitan ng pagkonekta sa proseso ng pakikinig ng nc sa pagtanggap ng host:

tar czvf - /path/to/dir | nc receiving.host.com 5555

Maaari mong panoorin ang pag-unlad ng paglipat sa parehong mga dulo. Kapag nakumpleto, i-type ang CTRL+C upang isara ang koneksyon.

Lumilikha ng isang Simple Server Server

Ang pamamaraan para sa paglikha ng isang online chat sa pagitan ng dalawa o higit pang mga host ay pareho tulad ng sa paglilipat ng mga file.

Sa unang host magsimula ang isang proseso ng Netcat upang makinig sa port 5555:

nc -l 5555

Mula sa pangalawang host magpatakbo ng sumusunod na utos upang kumonekta sa port sa pakikinig:

nc first.host.com 5555

Ngayon kung nag-type ka ng isang mensahe at pindutin ang ENTER ipapakita ito sa parehong mga host.

Upang isara ang koneksyon, i-type ang CTRL+C

Nagsasagawa ng isang kahilingan sa HTTP

Bagaman mayroong mas mahusay na mga tool para sa mga kahilingan ng HTTP tulad ng curl, maaari mo ring gamitin ang Netcat upang magpadala ng iba't ibang mga kahilingan sa mga malayuang server.

Halimbawa, upang makuha ang pahina ng tao ng Netcat mula sa OpenBSD web site na iyong mai-type:

printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80

Ang buong tugon kasama ang mga header ng HTTP at HTML code ay mai-print sa terminal.

Konklusyon

Sa tutorial na ito, natutunan mo kung paano gamitin ang utility ng Netcat upang maitaguyod ang isang at subukan ang mga koneksyon sa TCP at UDP.

Para sa karagdagang impormasyon bisitahin ang pahina ng tao ng Netcat at basahin ang tungkol sa lahat ng iba pang makapangyarihang mga pagpipilian ng utos ng Netcat.

terminal ng netcat