Netcat Kullanımı

Ekim 25th, 2011 § Yorum yok

Netcat network için isviçre çakısı gibidir.
Netcat temel olarak verilen porttan ilgili sunucuya bağlanır, input olarak verilen bilgiyi bu sunucuya gönderir, sunucunun cevabını ise ekrana (stdout’a) basar.

Örneğin google.com sunucusuna bağlanalim.

[xxx@xxxxx ~]$ nc www.google.com 80
HEAD / HTTP/1.0
[enter]
HTTP/1.0 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.com.tr/?gfe_rd=cr&ei=Z-uCU8XoI4Pe8geRnoG4Aw
Content-Length: 262
Date: Mon, 26 May 2014 07:21:11 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic

Aynı işi aşağıdaki gibi de yapabiliriz.

[xxxx@xxxxxx ~]$ echo -e "HEAD / HTTP/1.0\n" | nc www.google.com 80
HTTP/1.0 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.com.tr/?gfe_rd=cr&ei=POuCU5_5I9Da8ge8_ICIDw
Content-Length: 262
Date: Mon, 26 May 2014 07:20:28 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic

Netcat’i dinleyici servis olarak çalıştırmak için “-l ” kullanılabilir.
Böylece çift yönlü olarak sunucunun ilgili portuna direct edilmiş bilgiler bağlanan sunucunun ekranına basılılır.

# IP adresi 10.10.10.10 olan bilgisayarda
[xxxx@xxxxxx ~]# uptime| nc -l 6666
# şimdi başka bir bilgisayardan, 10.10.10.10 bilgisayarının 6666 portuna bağlanalim:
[xxxx@xxxxxx ~]$ nc 10.10.10.10 6666
 10:44:26 up 37 min,  4 users,  load average: 0.00, 0.02, 0.07

Bunun güzel bir uygulaması olan chat server olarak netcat kullanmak için

# IP adresi 10.10.10.10 olan bilgisayarda
$ nc -l -p 12345
veya
$ nc -l 12345

# şimdi dinleyen 10.10.10.10 bilgisayarının 12345 portuna bağlanalim:
 
$ nc 10.10.10.10 12345

İki bilgisayar arasında dosya göndermek


# Dinleyen sunucu -> bağlanan sunucu yönüde transfer
# IP adresi 192.168.1.10 olan bilgisayarda
$ cat file | nc -l -p 6666
 
# Başka bir bilgisayardan
$ nc 192.168.1.10 6666 > file

# Bağlanan sunucu -> Dinleyen sunucu yönüde transfer 
# 192.168.1.10 adresli bilgisayardan
$ nc -l -p 6666 -q 10 >output.txt
 
# Başka bir bilgisayardan
$ cat input.txt| nc 192.168.1.10 6666 

-q 10 ile 10 saniye sonra kapanması isteniyor.

A bilgisayarındaki /data dizinindeki dosyaları B bilgisayarına göndermek

# IP adresi 192.168.1.10 olan bilgisayarda
$ tar -cf - /data | nc -l -p 6666
 
# 192.168.1.10 ipli bilgisayara bağlanalim
$ nc 192.168.1.10 6666 | tar -xf -

# Diğer bilgisayardan 10.10.10.2 ipli bilgisayara erişip 12345 portundan veri gönderilip 12346 porundan veri alınabilir.

# 10.10.10.2 ipli bilgisayarda
$ nc -l 12345 | nc www.linuxwiki.net 80 | nc -l 12346
# Başka bir bilgisayardan
$ nc 10.10.10.2 12345
linux
^C
$ nc 10.10.10.2 12346
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>GET to /default.shtml not supported.<br />
</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
<hr>
<address>Apache Server at just135.justhost.com Port 80</address>
</body></html>

Netcat ile herhangi bir process sunucu görevi görebilir.
Bunu sağlamak için -e kullanmak yeterli

$ nc -l -p 12345 -e /bin/bash

$ nc localhost 12345
ls -las
total 4288
   4 drwxr-xr-x 15 pkrumins users    4096 2009-02-17 07:47 .
   4 drwxr-xr-x  4 pkrumins users    4096 2009-01-18 21:22 ..
   8 -rw-------  1 pkrumins users    8192 2009-02-16 19:30 .bash_history
   4 -rw-r--r--  1 pkrumins users     220 2009-01-18 21:04 .bash_logout
   ...

Netcat ile ilgili portu dinleyen program hakkında bilgi edinebiliriz.


[XXXX@XXXX ~]$ nc -vvv localhost 22
Connection to localhost 22 port [tcp/ssh] succeeded!
SSH-2.0-OpenSSH_5.3

Protocol mismatch.

Aynı mantıkla netcat port scanner olarak da kullanılabilir.

[XXXX@XXXX ~]$ nc -vvv -z targetip 1-65535

Not: Netcat için bazı paketlerde kısıtlamalar getirilmiştir.
Orjinal kaynaktan yüklemek için
* Microsoft
http://www.vulnwatch.org/netcat/nc111nt.zip

* Linux/Unix/BSD
http://www.vulnwatch.org/netcat/nc110.tgz

* GNU
http://netcat.sourceforge.net/

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ne yapıyorum ben!?

Netcat Kullanımı başlıklı yazıyı okuyorsun.

Üst Veri