Hping ile portsuz dosya transferi

Hping, rastgele TCP/IP paketleri göndermemize olanak sağlayan bir araçtır. hping ile

TCP (Transmission Control Protocol),
UDP (User Datagram Protocol),
ICMP (Internet Control Message Protocol),
Raw paketler üretebilir.

Hping aşağıdaki amaçlar için kullanılabilir:
  • Güvenlik duvarı testi
  • Gelişmiş port taraması
  • Ağ testleri, farklı protokollerle çalışma, TOS, fragmentation
  • Manuel biçimde MTU (Maximum Transmission Unit) tespiti
  • Desteklenen tüm protokollerin altında gelişmiş traceroute
  • Uzaktan işletim sistemi tanımlama
  • Uzaktan çalışma süresi tahmin etme
  • TCP/IP'yi öğrenmek isteyen öğrencilere yardımcı olma
Yazımızın konusu olan ICMP üzerinden portsuz dosya transferi yapmak için hping aracı aşağıdaki gibi kullanılabilir:

Alıcı taraf (dinleyici makine):

sudo hping3 --listen <ip address> -I <network-interface (eth0,lo, etc)> --sign MSGID1

örnek kulanım: sudo hping3 --listen 8.8.8.8 -I eth0 --sign MSGID1


Gönderici taraf (istemci makine):

sudo hping3 <ip address> --icmp --sign MSGID1 -d 5000 -c 1 --file .bash_history

örnek kulanım:
sudo hping3 8.8.8.8 --icmp --sign MSGID1 -d 5000 -c 1 --file .bash_history

İstemci tarafta komut çalıştırıldığında dinleyici tarafın ekranında .bash_history dosyasının içeriğinin yollandığı görülebilecektir.

Note: 

Hping aşağıdaki işletim sistemlerinde çalışır: Linux, FreeBSD, NetBSD, OpenBSD, MacOS X ve Windows.

Bash'de alias işlemini kalıcı hale getirme

04:08 ,

Bash kabuğunun bize sağladığı kolaylıkların yanında kişiselleştirmek bazı uzun ve sık kullandığımız komutları kısa isimler vererek aliasing işlemine başvurmak önemli bir kolaylık sağlayacaktır. Bunun için yapılması gerekenleri sırayla açıklayalım. Öncelikle alias işlemini geçici veya kalıcı olarak gerçekleştirmek mümkündür.Terminal ekranından;

  • :~ $ alias wip='curl ifconfig.me/ip' (wip = '...' bu üç parça arasında boşluk olmamasına dikkat edin)
  • :~ $ wip

şeklinde session sonuna kadar wip komutunu kullanarak çıkış ip'mizi hızlıca bulmak mümkün. Fakat bu alias yapılmış komut terminal açılıp kapandığında geçerliliğini yitirecektir.

Komutu kalıcıTerminal'den çok kullandığım ll komutunu raspbian dağıtımında göremeyince (2. resimdeki 1 numaralı kısım) buraya eklemek istedim. Şimdi sırasıyla alias işlemini kalıca hale getirmek için yapılması gerekenleri sıralayalım;
  • vim ~/.bashrc komutu (2. resimdeki 2 numaralı kısım) ile ilgili dosyayı açalım.
  • Dosyanın sonuna gelelim ve   alias ll='ls -al' ifadesini yazalım. Aynı isimli birden fazla alias varsa dosya yukarıdan aşağıya çalıştığı için en son yazılan geçerli olacaktır.
  • Yazdığımız alias işlemi hemen aktif hale gelmesini istiyorsak source ~/.bashrc komutu (2. resimdeki 3 numaralı kısım) ile bunu gerçekleştirmek mümkündür. Aksi halde terminal açılıp kapandığında da aktif hale gelecektir.
  • Ve adımları tamamladıktan sonra tekrar ll komutunu çalıştırırsak (2. resimdeki 4 numaralı kısım) başarılı bir şekilde çalıştığı görülmektedir.



Linux'ta rsync ile dosya transferi

07:57 ,

Linux'ta dosya transferi için komut satırından kullanılan scp komutuna alternatif olarak rsync komutu kullanılabilir. Hem dosya indirme hem de dosya yükleme amacıyla kullanabileceğimiz bu komutun kullanım şekli aşağıdaki gibidir:

Dosya indirme


2 numaralı alan download edilecek dosyanın full path'i 
3 numaralı alan ise kaydedilecek yerin full path'i

-ravz parametreleri:

 -r, --recursive             recurse into directories (belirtilen bir dosya ise recursive olarak aktarma)
 -a, --archive               archive mode
 -v, --verbose               increase verbosity
 -z, --compress            compress file data during the transfer (aktarım sırasında sıkıştırma)

Dosya yükleme


2 numaralı alan upload edilecek dosyanın full path'i 
3 numaralı alan ise kaydedilecek hedef yerin full path'i



Betik çalışma süresini hesaplama

05:56 , ,

Yazdığımız bir betiğin çalışma süresini hesaplama yöntemlerinden biri betik içerisine aşağıdaki gibi bir yöntem izlenmesidir.


1 noktasında sistemin o anki zamanını bir değişkene kaydettikten sonra betik yapması gereken işleri tamamlar ardından 2 numaralı alana geçer ve o anki sistem zamanını alır. Son olarak aradan geçen zamanı hesaplayarak betiğin toplam çalışma süresini hesaplayabiliriz. Aşağıda yukarıda yazdığımız örneğin çıktısı görülebilir.


ikinci yöntem ise time komutu aracığılıyla bu işlemi gerçekleştirmedir. Bu yöntem ise aşağıda görebileceğiniz üzere;


çalıştıracağımız betiği time komutu ile birlikte çalıştırma şeklindedir.


Linux sistemlerde usb device mount etme

05:45 ,

Find what the drive is called

Aşağıda görülebileceği üzere lsblk komutu ile sisteme takılan usb'nin hangi partion'da olduğu görülebilir. Burada sıkıntılı olan takılan usb'ye ait ayırt edici bir bilginin görülememesidir.


sudo fdisk -l komutu ile benzer biçimde takılan usb depolama aygıtları da listelenecektir. Burada da yukarıdaki komutta olduğu gibi açıklayıcı bilgi eksikliği problemi karşımıza çıkmaktadır.

sudo blkid komutu ise en temiz bilgileri veren komut olarak karşımıza çıkmaktadır. USB cihazın adı, yolu net bir biçimde görünmektedir.


Bir diğer yöntem ise takılan usb'ye ilişkin bilgileri kernel ring buffer'dan elde etmektir. dmesg | tail -10 komutu ile bilgiler görülebilir.


Yukarıda görüleceği üzere SanDisk için sdf:sdf1 biçiminde yol ifadesi görülebilmektedir. 

Create a mount point

Ardından sistemde mount noktası oluşturmak için bir klasör oluşturulur. Genelde /media dizini altına oluşturulur. Biz de öyle yapalım.
  • mkdir  /media/usbSandisk/

Mount

  • sudo mount /dev/sdf1 /media/usbSandisk/   komutu ile mount işlemi gerçekleştirilir.

Unmount

  • sudo umount /media/usbSandisk/
  • sudo umount /dev/sdf1
komutları girilir.