ngrep - ນັກວິເຄາະ Network Packet ສຳ ລັບ Linux
Ngrep (ເຄືອຂ່າຍ grep) ແມ່ນນັກວິເຄາະຊຸດເຄືອຂ່າຍທີ່ລຽບງ່າຍແຕ່ມີພະລັງ. ມັນແມ່ນເຄື່ອງມືຄ້າຍຄືກັບ grep ທີ່ ນຳ ໃຊ້ກັບຊັ້ນເຄືອຂ່າຍ - ມັນກົງກັບການຈະລາຈອນຜ່ານເຄືອຂ່າຍອິນເຕີເນັດ. ມັນຊ່ວຍໃຫ້ທ່ານສາມາດລະບຸການສະແດງອອກແບບປົກກະຕິຫລືແບບ hexadecimal ເພື່ອໃຫ້ກົງກັບຂໍ້ມູນການຈ່າຍເງິນ (ຂໍ້ມູນຕົວຈິງຫຼືຂໍ້ຄວາມໃນຂໍ້ມູນທີ່ສົ່ງຕໍ່, ແຕ່ບໍ່ແມ່ນຂໍ້ມູນ metadata ທີ່ຜະລິດໂດຍອັດຕະໂນມັດ) ຂອງແພັກເກັດ.
ເຄື່ອງມືນີ້ເຮັດວຽກກັບໂປໂຕຄອນປະເພດຕ່າງໆ, ລວມທັງ IPv4/6, TCP, UDP, ICMPv4/6, IGMP ເຊັ່ນດຽວກັນກັບ Raw ໃນຫຼາຍໆອິນເຕີເຟດ. ມັນ ດຳ ເນີນງານແບບດຽວກັບເຄື່ອງມື sniffing pack tcpdump.
ຊຸດ ngrep ສາມາດຕິດຕັ້ງໄດ້ຈາກຫໍສະມຸດຂອງລະບົບເລີ່ມຕົ້ນໃນການແຈກຢາຍ Linux ທີ່ ສຳ ຄັນໂດຍໃຊ້ເຄື່ອງມືຄຸ້ມຄອງແພັກເກດດັ່ງທີ່ສະແດງໄວ້.
$ sudo apt install ngrep $ sudo yum install ngrep $ sudo dnf install ngrep
ຫຼັງຈາກຕິດຕັ້ງ ngrep, ທ່ານສາມາດເລີ່ມຕົ້ນວິເຄາະການຈະລາຈອນໃນເຄືອຂ່າຍ Linux ຂອງທ່ານໂດຍໃຊ້ຕົວຢ່າງຕໍ່ໄປນີ້.
1. ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະຊ່ວຍໃຫ້ທ່ານສາມາດກົງກັບ ຄຳ ຮ້ອງທຸກ ping ໃນອິນເຕີເຟດເຮັດວຽກໄດ້. ທ່ານຈໍາເປັນຕ້ອງເປີດສະຖານີອື່ນແລະພະຍາຍາມ ping ເຄື່ອງອື່ນທີ່ຢູ່ຫ່າງໄກສອກຫຼີກ. ທຸງ -q
ບອກ ngrep ໃຫ້ເຮັດວຽກຢ່າງງຽບໆ, ເພື່ອບໍ່ໃຫ້ຂໍ້ມູນໃດໆນອກ ເໜືອ ຈາກຫົວຂໍ້ຊຸດແລະຄ່າຈ່າຍຂອງພວກເຂົາ.
$ sudo ngrep -q '.' 'icmp' interface: enp0s3 (192.168.0.0/255.255.255.0) filter: ( icmp ) and ((ip || ip6) || (vlan && (ip || ip6))) match: . I 192.168.0.104 -> 192.168.0.103 8:0 ]...~oG[....j....................... !"#$%&'()*+,-./01234567 I 192.168.0.103 -> 192.168.0.104 0:0 ]...~oG[....j....................... !"#$%&'()*+,-./01234567 I 192.168.0.104 -> 192.168.0.103 8:0 ]....oG[............................ !"#$%&'()*+,-./01234567 I 192.168.0.103 -> 192.168.0.104 0:0 ]....oG[............................ !"#$%&'()*+,-./01234567
ທ່ານສາມາດກົດ Ctrl + C
ເພື່ອຢຸດມັນ.
2. ເພື່ອໃຫ້ກົງກັບການເຂົ້າຊົມທີ່ໄປທີ່ເວັບໄຊທ໌ປາຍທາງສະເພາະ, ເຊັ່ນວ່າ 'google.com', ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້, ຈາກນັ້ນພະຍາຍາມເຂົ້າໃຊ້ມັນຈາກ browser.
$ sudo ngrep -q '.' 'host google.com' interface: enp0s3 (192.168.0.0/255.255.255.0) filter: ( host google.com ) and ((ip || ip6) || (vlan && (ip || ip6))) match: . T 172.217.160.174:443 -> 192.168.0.103:54008 [AP] ..................;.(...RZr..$....s=..l.Q+R.U..4..g.j..I,.l..:{y.a,....C{5>[email T 172.217.160.174:443 -> 192.168.0.103:54008 [AP] .............l.......!,0hJ....0.%F..!...l|.........PL..X...t..T.2DC..... ..y...~Y;[email
3. ຖ້າທ່ານ ກຳ ລັງທ່ອງເວັບ, ຫຼັງຈາກນັ້ນ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອຕິດຕາມກວດກາວ່າໄຟລ໌ໃດທີ່ browser ຂອງທ່ານ ກຳ ລັງຮ້ອງຂໍ:.
$ sudo ngrep -q '^GET .* HTTP/1.[01]' interface: enp0s3 (192.168.0.0/255.255.255.0) filter: ((ip || ip6) || (vlan && (ip || ip6))) match: ^GET .* HTTP/1.[01] T 192.168.0.104:43040 -> 172.217.160.174:80 [AP] GET / HTTP/1.1..Host: google.com..User-Agent: Links (2.13; Linux 4.17.6-1.el7.elrepo.x86_64 x86_64; GNU C 4.8.5; text)..Accept: */*..Accept-Language: en,*;q=0.1..Accept- Encoding: gzip, deflate, bzip2..Accept-Charset: us-ascii,ISO-8859-1,ISO-8859-2,ISO-8859-3,ISO-8859-4, ISO-8859-5,ISO-8859-6,ISO-8859-7,ISO-8859-8,ISO-8859-9,ISO-8859-10,I SO-8859-13,ISO-8859-14,ISO-8859-15,ISO-8859-16,windows-1250,windows-1251,windows-1252,windows-1256, windows-1257,cp437,cp737,cp850,cp852,cp866,x-cp866-u,x-mac,x-mac-ce,x- kam-cs,koi8-r,koi8-u,koi8-ru,TCVN-5712,VISCII,utf-8..Connection: keep-alive....
4. ເພື່ອເບິ່ງກິດຈະ ກຳ ຂ້າມສະຖານທີ່ຫຼືທີ່ປາຍທາງ 25 (SMTP), ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
$ sudo ngrep port 25
5. ເພື່ອຕິດຕາມການເຂົ້າຊົມ syslog ທີ່ໃຊ້ໃນເຄືອຂ່າຍ ສຳ ລັບ ຄຳ ວ່າ“ ຜິດພາດ”, ໃຫ້ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
$ sudo ngrep -d any 'error' port 514
ສິ່ງ ສຳ ຄັນ, ເຄື່ອງມືນີ້ສາມາດປ່ຽນຊື່ພອດບໍລິການທີ່ເກັບໄວ້ໃນ“/etc/services” (ໃນລະບົບທີ່ຄ້າຍຄືກັບ Unix ເຊັ່ນ Linux) ເປັນເລກ port. ຄຳ ສັ່ງນີ້ເທົ່າກັບ ຄຳ ສັ່ງຂ້າງເທິງ.
$ sudo ngrep -d any 'error' port syslog
6. ທ່ານຍັງສາມາດເອີ້ນໃຊ້ ngrep ຕໍ່ກັບ server HTTP (port 80), ມັນຈະກົງກັບ ຄຳ ຮ້ອງຂໍທັງ ໝົດ ກັບໂຮດຈຸດ ໝາຍ ດັ່ງທີ່ສະແດງ.
$ sudo ngrep port 80 interface: eth0 (64.90.164.72/255.255.255.252) filter: ip and ( port 80 ) #### T 67.169.59.38:42167 -> 64.90.164.74:80 [AP] GET / HTTP/1.1..User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i 686) Opera 7.21 [en]..Host: www.darkridge.com..Accept: text/html, applicat ion/xml;q=0.9, application/xhtml+xml;q=0.9, image/png, image/jpeg, image/gi f, image/x-xbitmap, */*;q=0.1..Accept-Charset: iso-8859-1, utf-8, utf-16, * ;q=0.1..Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0..Cookie: SQ MSESSID=5272f9ae21c07eca4dfd75f9a3cda22e..Cookie2: $Version=1..Connection: Keep-Alive, TE..TE: deflate, gzip, chunked, identity, trailers.... ##
ດັ່ງທີ່ທ່ານສາມາດເຫັນໃນຜົນໄດ້ຮັບຂ້າງເທິງທັງ ໝົດ ການສົ່ງຕໍ່ຫົວ HTTP ແມ່ນສະແດງຢູ່ໃນລາຍລະອຽດຂອງ gory ຂອງພວກເຂົາ. ມັນຍາກທີ່ຈະແຍກອອກໄດ້, ສະນັ້ນ, ຈົ່ງສັງເກດເບິ່ງວ່າຈະມີຫຍັງເກີດຂື້ນໃນເວລາທີ່ທ່ານສະແດງແບບ ໂໝດ ເສັ້ນທາງ.
$ sudo ngrep -W byline port 80 interface: eth0 (64.90.164.72/255.255.255.252) filter: ip and ( port 80 ) #### T 67.169.59.38:42177 -> 64.90.164.74:80 [AP] GET / HTTP/1.1. User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686) Opera ... Host: www.darkridge.com. Accept: text/html, application/xml;q=0.9, application/xhtml+xml;q=0.9 ... Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1. Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0. Cookie: SQMSESSID=5272f9ae21c07eca4dfd75f9a3cda22e. Cookie2: $Version=1. Cache-Control: no-cache. Connection: Keep-Alive, TE. TE: deflate, gzip, chunked, identity, trailers.
7. ເພື່ອພິມຕາຕະລາງເວລາໃນຮູບແບບຂອງ YYYY/MM/DD HH: MM: SS.UUUUU ທຸກໆຄັ້ງທີ່ມີການຈັບຄູ່, ໃຊ້ທຸງ -t.
$ sudo ngrep -t -W byline port 80 interface: enp0s3 (192.168.0.0/255.255.255.0) filter: ( port 80 ) and ((ip || ip6) || (vlan && (ip || ip6))) #### T 2018/07/12 16:33:19.348084 192.168.0.104:43048 -> 172.217.160.174:80 [AP] GET / HTTP/1.1. Host: google.com. User-Agent: Links (2.13; Linux 4.17.6-1.el7.elrepo.x86_64 x86_64; GNU C 4.8.5; text). Accept: */*. Accept-Language: en,*;q=0.1. Accept-Encoding: gzip, deflate, bzip2. Accept-Charset: us-ascii,ISO-8859-1,ISO-8859-2,ISO-8859-3,ISO-8859-4,ISO-8859-5,utf-8. Connection: keep-alive.
8. ເພື່ອຫລີກລ້ຽງການໃຊ້ອິນເຕີເຟດທີ່ຖືກຕິດຕາມເຂົ້າໄປໃນຮູບແບບທີ່ສາມາດປະກາດໄດ້ (ບ່ອນທີ່ມັນແຊກແຊງແລະອ່ານແຕ່ລະຊຸດເຄືອຂ່າຍທີ່ມາຮອດທັງ ໝົດ), ຕື່ມໃສ່
$ sudo ngrep -p -W byline port 80
9. ຕົວເລືອກທີ່ ສຳ ຄັນອີກອັນ ໜຶ່ງ ແມ່ນ -N
ເຊິ່ງເປັນປະໂຫຍດໃນກໍລະນີທີ່ທ່ານ ກຳ ລັງສັງເກດເບິ່ງໂປໂຕຄອນດິບຫຼືບໍ່ຮູ້ຈັກ. ມັນບອກ ngrep ໃຫ້ສະແດງ ໝາຍ ເລກອະນຸສັນຍາຍ່ອຍພ້ອມດ້ວຍຕົວລະບຸຕົວຕົນດຽວ.
$ sudo ngrep -N -W byline
ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ ໜ້າ ຜູ້ຊາຍ ngrep.
$ man ngrep
ngrep Github repository: https://github.com/jpr5/ngrep
ຫມົດເທົ່ານີ້! Ngrep (ເຄືອຂ່າຍ grep) ແມ່ນນັກວິເຄາະຊຸດເຄືອຂ່າຍທີ່ເຂົ້າໃຈເຫດຜົນການກັ່ນຕອງ BPF ໃນແບບ Tcpdump ແບບດຽວກັນ. ພວກເຮົາຢາກຮູ້ຄວາມຄິດຂອງທ່ານກ່ຽວກັບ ngrep ໃນສ່ວນ ຄຳ ເຫັນ.