Başka bir kullanıcı tarafından yürütülen Linux kabuk komutlarının canlı görünümü?


27

Linux'taki kök kullanıcının, bir terminal veya SSH aracılığıyla giriş yapmış başka bir kullanıcı tarafından çalıştırılan kabuk komutlarının gerçek zamanlı (veya gerçek zamanlıya yakın) bir görünümü olması mümkün mü? Açıkçası .bash_history'de saklanıyorlar, ancak bu yalnızca kullanıcı oturumu kapattığında ve devre dışı bırakılabildiğinde kaydedildi.

Düzenleme: ideal olarak kolayca açılıp kapatılabilen bir şey.


ttyrpldiyi görünüyor. bu soruda tavsiye edilir. serverfault.com/questions/40011/…
hayalci

Yanıtlar:


16

root olarak, kabuğunu, komutlarını gerçek kabuğa aktarmadan önce günlüğe kaydeden basit bir sarma komut dosyası ile değiştirebilirsiniz. Bu sadece giriş yapmadan önce işe yarayacaktı.


20
Bunu, önceki bir işverendeki saldırıya uğramış bir hesabı izlemek için yaptık. "/ Bin / bash" oluşturuldu (boşluğa dikkat edin), script komutunun etrafındaki bir sarmalayıcıydı. Bir cazibe gibi çalıştı :)
Komutan Keen

Çok zeki! +1
EMP

9

Kullanıcının oturumuna girmek istiyorsanız veya işbirliğiniz varsa sniffy kullanın screen -x.

Ancak, kullanıcılarınıza casusluk yapmanın yönetmeliklere tabi olabileceğini veya yerel mevzuatınıza bağlı olarak tamamen yasa dışı olabileceğini unutmayın.


7

Kabuğu değiştirmek, atlatmak için çok önemsizdir, kabuğun kendisini yamalamak daha iyidir, ancak tüm kabukları yamalamanız gerekir. Bizim favori krakerimiz bunu, bash_history'yi etkisiz hale getirerek kendisini rahatsız etmeyen bir bonus olarak kullanıyor.

ssh host /bin/sh -i  

Snoopy , exec işlevlerinin etrafındaki bir sarmalayıcıdır ve yürütülen herhangi bir harici ikili dosyayı günlüğe kaydeder (kabuk yerleşik değil)

@ David Schmitt'in öneri sniffy kullanımlar daha iyi bir yöntem, bu uçbirimsiler musluklar.

ttysnoop aynı yöntemi kullanır, ancak kullanılmaz. (Muhtemelen ssh bağlantılarını kaydetme konusunda problemlerim vardı, hatırlayamıyorum)

Bir oturumu kaydetmek için ssh yamasını deneyebilirsiniz , ancak bu yama eskidir .

psödopod ve rootsh meşru sudos kaydı yapmak için kullanılabilir. Ve shwatcr girişleri izlemek için başka bir şeydir.


Tam olarak ne ssh host /bin/sh -iyapması gerekiyor?
Mike Pennington

Snoopy için +1, mükemmel değil ama yapmamız gerekeni yaptı.
skinp

4

İşbirliği yapıyorsanız, iki kullanıcı arasında GNU ekranını kullanabilirsiniz - bir ekran oturumu kurduktan sonra diğerini de kullanmalısınız screen -x.

Kökünün bilgisi olmadan diğer kullanıcılara casusluk yapmasını istiyorsanız, en iyi ve en etkili çözüm keylogger yazılımı / donanımı olabilir.


4

Sysdig , sistem düzeyinde keşif için güçlü bir araçtır - istediğiniz budur;)

örnek:

sysdig -i Instagram Hesabındaki Resim ve Videoları spy_users

Kategori: Güvenlik

spy_users İnteraktif kullanıcı aktivitesini göster

Kullanıcıların etkileşimli olarak başlattığı her komutu (örneğin bash'tan) ve ziyaret ettiği her dizini listeler



1

Bir yama veya özel bir çalıştırılabilir araç kullanmadan tüm 'bash' komutlarını / yerleşiklerini bir metin dosyasına veya 'syslog' sunucusuna kaydetmek için bir yöntem yazdım.

Dağıtılması çok kolaydır, çünkü 'bash' başlangıcında bir kez çağrılması gereken basit bir kabuk komut dosyasıdır.

Buradaki yönteme bakın: http://blog.pointsoftware.ch/index.php/howto-bash-audit-command-logger


Sunucu Arızasına Hoşgeldiniz! Yanıtların içeriğe işaretçileri değil, içeriğe sahip olmasını gerçekten tercih ediyoruz. Bu, bağlantı kesilse bile cevabın hazır kalmasını sağlar. Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
user9517


1
function spy() { 
   ptsnum=`ps awfux | grep pt[s]\/"$1" | awk '/bas[h]/{print $2}'` ; 
   /usr/bin/strace -s 1000 -t -f -p $ptsnum 2>&1 3>&1 \
        | grep -Poi 'write\(...\"[[:print:]]{1,2}\"[.][.][.][,]..\)' ; 
}

[436] klikevil@epiphany ~ $ w<br>
 09:36:43 up 12:06,  6 users,  load average: 0.46, 0.29, 0.20<br>
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT<br>
klikevil pts/0    75.125.126.8     23:05    2:19m 10:33   0.18s cmd                                      <br>
klikevil pts/1    75.125.126.8     00:18    6:50m  0.06s  0.04s sshd: klikevil [priv]<br>
klikevil tty7     :0               09:02   17:07m  2:02   0.32s x-session-manager<br>
klikevil pts/2    :0.0             09:03    3:30   0.08s  0.08s bash<br>
klikevil pts/3    :0.0             09:03    0.00s  0.76s  0.00s w<br>
klikevil pts/4    :0.0             09:06    3:13   0.46s  0.00s /bin/sh /usr/bin/thunder<br>
[437] klikevil@epiphany ~ $ spy 2<br>
write(2, "e"..., 1)<br>
write(2, "c"..., 1)<br>
write(2, "h"..., 1)<br>
write(2, "o"..., 1)<br>
write(2, " "..., 1)<br>
write(2, "s"..., 1)<br>
write(2, "u"..., 1)<br>
write(2, "p"..., 1)<br>
write(2, " "..., 1)<br>
write(2, "d"..., 1)<br>
write(2, "o"..., 1)<br>
write(2, "g"..., 1)<br>
write(2, "\n"..., 1)<br>
^C<br>

Bir grup satır sonları ile sıralama sakıncası yoksa oldukça iyi çalışıyor gibi görünüyor.


1

Snoopy hafif komut günlüğü için tasarlanmıştır.

Sisteminizde yürütülen komutların canlı görüntüsünü istiyorsanız, bu olabilir. Uyarı: snoopy uygun bir denetim çözümü değildir ve kolayca atlatılabilir.

Ancak, terminale girilen her karakteri görmek isterseniz, başka bir araç kullanmanız gerekecektir.

Açıklama: Ben şu an meraklıyım.


-3

bu dışa aktarımı deneyin HISTTIMEFORMAT = "% T" birkaç komut ve "geçmiş" komutunu çalıştırdıktan sonra ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.