Anda dapat menggunakan kerangka auditd untuk hal-hal semacam ini. Mereka tidak terlalu "ramah pengguna" atau intuitif, sehingga membutuhkan sedikit penggalian di pihak Anda.
Pertama pastikan Anda telah menginstal auditd, menjalankan dan bahwa kernel Anda mendukungnya.
Untuk Ubuntu Anda dapat menginstalnya dengan apt-get install auditd
misalnya.
Kemudian Anda menambahkan kebijakan untuk audit untuk memantau semua connect
syscalls seperti ini:
auditctl -a exit,always -F arch=b64 -S connect -k MYCONNECT
Jika Anda menggunakan instalasi Linux 32-bit, Anda harus mengubah b64 ke b32.
Perintah ini akan menyisipkan kebijakan ke kerangka kerja audit, dan syscalls connect () apa pun sekarang akan dicatat ke file log audit Anda (biasanya /var/log/audit/audit.log
) untuk Anda lihat.
Misalnya, koneksi dengan netcat ke news.ycombinator.com port 80 akan menghasilkan sesuatu seperti ini:
type=SYSCALL msg=audit(1326872512.453:12752): arch=c000003e syscall=42 success=no exit=-115 a0=3 a1=24e8fa0 a2=10 a3=7fff07a44cd0 items=0 ppid=5675 pid=7270 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts4 ses=4294967295 comm="nc" exe="/bin/nc.openbsd" key="MYCONNECT"
type=SOCKADDR msg=audit(1326872512.453:12752): saddr=02000050AE84E16A0000000000000000
Di sini Anda dapat melihat bahwa aplikasi /bin/nc.openbsd memulai panggilan connect (), jika Anda mendapatkan banyak panggilan koneksi dan hanya ingin mengeluarkan ip atau port tertentu, Anda harus melakukan beberapa konversi. Baris SOCKADDR berisi argumen saddr, dimulai dengan 0200 diikuti oleh nomor port dalam heksadesimal (0050) yang berarti 80, dan kemudian IP dalam hex (AE84E16A) yang merupakan IP news.ycombinator.com dari 174.132.225.106.
Kerangka audit dapat menghasilkan banyak log, jadi ingatlah untuk menonaktifkannya ketika Anda telah menyelesaikan misi Anda. Untuk menonaktifkan kebijakan di atas, cukup ganti -a dengan -d seperti:
auditctl -d exit,always -F arch=b64 -S connect -k MYCONNECT
Dokumentasi yang bagus tentang kerangka kerja auditd:
http://doc.opensuse.org/products/draft/SLES/SLES-security_sd_draft/part.audit.html
Ubah alamat IP ke / dari hex, dec, binary, dll di:
http://www.kloth.net/services/iplocate.php
Konverter hex / dec umum:
http://www.statman.info/conversions/hexadecimal.html
Pengantar Singkat untuk auditd, dari IT Security Stack Exchange.
http://security.blogoverflow.com/2013/01/a-brief-introduction-to-auditd/
Sunting 1 :
Cara quick'n'dirty (swedish: fulhack) lainnya untuk melakukannya adalah membuat loop cepat yang membuang data koneksi ke Anda, seperti ini:
while true;do
ss -ntap -o state established '( dport = :80 )'
sleep 1
done
Perintah ini menggunakan ss
perintah (statistik socket) untuk membuang koneksi yang ada ke port 80 termasuk proses apa yang memulainya. Jika banyak data yang dapat Anda tambahkan | tee /tmp/output
setelah dilakukan untuk menampilkan output di layar dan menuliskannya ke / tmp / output untuk pemrosesan / penggalian nanti. Jika tidak menangkap koneksi haproxy cepat, silakan coba hapus sleep 1
tetapi berhati-hatilah dalam pencatatan yang ekstensif jika ini adalah mesin yang banyak digunakan. Ubah sesuai kebutuhan!
ausearch -i
agarsaddr
string hex tersebut diterjemahkan secara otomatis untuk Anda.Anda juga dapat menangkap log besar yang Anda dapatkan dari "ausearch -i" untuk melihat hanya soket yang berhasil terhubung ke host lain di internet. Saya menulis skrip sederhana untuk mendapatkan setiap proses dan perintah yang membuat soket untuk terhubung ke host di internet bersama dengan alamat koneksi host target dan waktu saat soket "dibuat". Ini dia:
sumber