溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux的常用工具有哪些

發布時間:2021-09-10 07:48:30 來源:億速云 閱讀:186 作者:chen 欄目:建站服務器

本篇內容主要講解“Linux的常用工具有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux的常用工具有哪些”吧!

01

日志工具

1

logdissect

    logdissect用于分析日志文件和其他數據的 CLI 實用程序和 Python API。它可以解析、融合、過濾和導出數據(日志文件或json格式)

2

安裝

安裝有兩種方法,通過github和PyPI

github

需要:python, python-setuptools 

    (and/or python3, python3-setuptools)

wget https://github.com/dogoncouch/logdissect/archive/v3.1.1.tar.gztar -xzf v3.1.1.tar.gzcd logdissect-3.1.1sudo make all

注:筆者在測試時,發現當電腦只存在python2時,需要將logdissect/Makefile文件中以下關于python3的幾行注釋掉,才能正常安裝,否則會報錯

Linux的常用工具有哪些

PyPI

 需要:pip

sudo pip install logdissect

3

選項介紹

用法: 

logdissect.py [-h] [--dhost DHOST] [--grep PATTERN][--last LAST][--process PROCESS][--protocol PROTOCOL][--range RANGE]              [--utc][--rdhost DHOST][--rgrep PATTERN][--rprocess PROCESS] [--rprotocol PROTOCOL][--rshost SHOST][--rsource SOURCE]              [--shost SHOST][--source SOURCE][--linejson LINEJSON] [--outlog OUTLOG][--label LABEL][--sojson SOJSON][--pretty][--version]              [--verbose] [-s] [--list-parsers][-p PARSER][-z]              [-t TZONE][file [file ...]]

位置參數:

file    指定輸入文件

選項參數:

-h, --help    查看幫助信息--version     查看程序版本號--verbose     設置詳細的終端輸出-s            靜默輸出--list-parsers查看可用的解析器-p PARSER     選擇解析器 (default: syslog)-z, --unzip   包含gzip壓縮文件-t TZONE      指定UTC時區偏移量 (例如 '+0500')

 過濾選項:

--grep PATTERN     匹配目的主機--grep PATTERN     匹配模式--last LAST        匹配前一個時間段 (例如 5m/3h/2d/etc)--process PROCESS  匹配源進程--protocol PROTOCOL匹配協議--range RANGE      匹配事件范圍 (YYYYMMDDhhmm-YYYYMMDDhhmm)(年月日時分)--utc              使用UTC進行范圍匹配--rdhost DHOST     過濾掉目標主機--rgrep PATTERN    過濾掉模式--rprocess PROCESS 過濾掉源進程--rprotocol PROTOCOL過濾掉協議--rshost SHOST     過濾掉源主機--rsource SOURCE   過濾掉日志源--shost SHOST      匹配源主機--source SOURCE    匹配日志源

輸出選項:

--linejson LINEJSON   設置逐行JSON輸出的輸出文件--outlog OUTLOG       設置標準日志輸出的輸出文件--label LABEL         設置輸出日志的標簽類型 (fname|fpath)--sojson SOJSON       設置單個對象JSON輸出的輸出文件--pretty              對sojson輸出美化格式

4

解析器

--list-parsers    輸出==== 可用解析模塊: ====ciscoios:思科ios解析模塊emerge:gentoo emerge日志解析模塊linejson:logdissect每行對象JSON解析模塊sojson:logdissect單個對象JSON解析模塊syslog: syslog (標準時間戳)解析模塊syslogiso:syslog (ISO時間戳)解析模塊syslognohost:syslog (沒有主機的標準時間戳)解析模塊tcpdump:tcpdump終端輸出解析模塊webaccess:web訪問日志解析模塊windowsrsyslog:windows rsyslog代理日志解析模塊

5

簡單用法

查看過去一小時的登錄日志:

logdissect --last 1h secure

Linux的常用工具有哪些

查看過去30分鐘systemd和cron進程的日志:

logdissect --last 30m --process systemd --process CRON messages

Linux的常用工具有哪些

結合詳細查看指定時間范圍的messages和dmesg日志

logdissect --verbose --range 20190428120000-20190428121000 --label fpath messages dmesg

Linux的常用工具有哪些

輸出過去30天183.238.151.209的訪問記錄的文件

logdissect -s --outlog myaccess.log --grep 183.238.151.209 --last 30d --label fname /var/log/secure

Linux的常用工具有哪些

02

進程工具

1

Linux Rootkit (vfs hook) 

    隱藏進程檢測工具,一個linux內核模塊,是用于檢測rootkit的一個小demo。通過讀取此內核模塊創建的虛擬文件,可檢測通過Hook vfs 函數來隱藏的進程。

下載鏈接:

https://security.tencent.com/index.php/opensource/down/16

2

安裝方法

unzip process_list.zipcd process_listmakemake install

使用效果:

Linux的常用工具有哪些

03

網絡分析工具

1

Tcpdump

  Tcpdump作為Linux下一款經典的抓包工具有必要進行講解。

注:抓包只是一個數據包捕獲過程,最重要的是對結果的分析。分析過程中,需要掌握主流協議的包結構,否則一切都是徒勞。

2

基礎

常用選項:

-i:指定網絡接口(如eth0,eth2。網絡接口使用ifconfig命令查看)-nn:不對IP地址進行DNS反解析,并且不將端口轉換為字符-vv:詳細輸出數據包信息-w:將捕獲的結果存入指定文件,-w后接自定義文件名-r:將存入文件的結果讀取出來以便分析

    重要:在抓包過程中,個人強烈建議使用 -n 選項。如果不加-n 選項,tcpdump程序就會對IP地址進行DNS反解析,反解析的過程會耗費相當部分時間。因為這里牽涉到libcap緩沖區,tcpdump捕獲的數據包首先會放入緩沖區,然后上層提取。但是上層在嘗試做DNS反解析的時間里,緩沖區會由于數據包過多而導致緩沖區溢出,溢出的直接結果就是部分數據包被drop,數據包被drop會對我們的分析過程造成極大影響——實際不丟包,但是數據顯示卻“丟包”。為了不影響我們的分析結果,個人建議加上-n選項

限定符:

    過濾器表達式由一個或多個基元組成,原語通常由id(名稱或數字)前面加一個或多個限定符),tcpdump提供了3種限定符,分別為type、direction、protocol

type(類型):

host    //host 192.168.1.1net     //net 192.168port    //port 80portrange    //portrange 22-801.2.2 direction(數據包方向)srcdstsrc or dstsrc and dst1.2.3 protocal(協議)etheriparprarptcpudpicmp

3

基本語法

過濾主機:

tcpdump -i ehtN -n host IPADDRtcpdump -n -i eth2 host 192.168.1.1  抓取所有經過eth2,目標或源地址是192.168.1.1的數據包tcpdump -i eth2 -n src host 192.168.1.1  指定源地址tcpdump -i eth2 -n dst host 192.168.1.1  指定目標地址

過濾端口:

tcpdump -i eth2 -n port PortNumtcpdump -i eth2 -n port 25 抓取所有經過eth2,目的或源端口是25的網絡數據tcpdump -i eth2 -n src port 25    指定源端口

網絡過濾:

tcpdump -i eth2 -n net 192.168tcpdump -i eth2 -n src net 192.168

協議過濾:

tcpdump -i ethN -n Protocoltcpdump -i eth2 -n icmptcpdump -i eth2 -n ip

常用表達式:

非:!或者 not

與:&& 或者 and

或:|| 或者 or

tcpdump -i eth2 tcp and port 80 and (dst host 192.168.1.254 or dst host 192.168.1.200)  抓取所有經過eth2,目的地址是192.168.1.254或192.168.1.200;端口是80的TCP數據或者tcpdump -i eth2 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'  //前面一個的寫法括號需要轉義,后一種寫法是將表達式用引號引起來

4

包頭過濾

    如何從包頭過濾信息了?首先要熟悉IP、TCP等協議的包頭結構,此處不做贅述。包頭過濾的語法如下:

'protocol[x:y]':這里表示的是以protocol協議的第x字節起始,取后面的y字節(字節從0開始編號)'proto[x:y] & z = 0'  : proto[x:y]和z的與操作為0'proto[x:y] & z !=0'  : proto[x:y]和z的與操作不為0'proto[x:y] & z = z'  : proto[x:y]和z的與操作為z'proto[x:y] = z'      : proto[x:y]等于z操作符 : >, <, >=, <=, =, !=

IP協議抓包:

tcpdump-i -n eth2'((ip[2:2] = 1024) and (src host 192.168.1.1'))  抓取經過eth2網卡、數據包大小為1024并且源IP為192.168.1.1的數據包tcpdump -i -n eth2'((ip[2:2] > 1024) and (src host 192.168.1.1))'抓取經過eth2網卡、數據包字節大于1024并且源IP為192.168.1.1的數據包

TCP協議抓包:

抓TCP包:tcpdump -i eth4 -nn -vv tcp and host 218.8.51.194tcpdump: listening on eth4, link-type EN10MB (Ethernet), capture size 65535 bytes17:41:00.159396 IP (tos 0x0, ttl 54, id 2335, offset 0, flags [DF], proto TCP (6), length 60)218.8.51.194.51003 > 182.118.126.96.80: Flags [S], cksum 0xe729 (correct), seq 3087933325, win 14600, options [mss 1460,sackOK,TS val 796071570 ecr 0,nop,wscale 7], length 017:41:00.159427 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52)182.118.126.96.80 > 218.8.51.194.51003: Flags [S.], cksum 0xce85 (correct), seq 1946096042, ack 3087933326, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 017:41:00.190017 IP (tos 0x0, ttl 54, id 2336, offset 0, flags [DF], proto TCP (6), length 40)218.8.51.194.51003 > 182.118.126.96.80: Flags [.], cksum 0x47ed (correct), seq 1, ack 1, win 115, length 017:41:00.190354 IP (tos 0x0, ttl 54, id 2337, offset 0, flags [DF], proto TCP (6), length 40)218.8.51.194.51003 > 182.118.126.96.80: Flags [F.], cksum 0x47ec (correct), seq 1, ack 1, win 115, length 017:41:00.190402 IP (tos 0x0, ttl 64, id 57183, offset 0, flags [DF], proto TCP (6), length 40)182.118.126.96.80 > 218.8.51.194.51003: Flags [F.], cksum 0x47eb (correct), seq 1, ack 2, win 115, length 017:41:00.221104 IP (tos 0x0, ttl 54, id 2338, offset 0, flags [DF], proto TCP (6), length 40)218.8.51.194.51003 > 182.118.126.96.80: Flags [.], cksum 0x47eb (correct), seq 2, ack 2, win 115, length 0

結果分析:

上面的結果中,2-3行信息為TCP三次握手的過程,offset 表示偏移量

Flags 后面的標識含義:

S (SYN)

F (FIN)

P (PUSH)

R (RST)

W (ECN CWR)

E (ECN-Echo)

. (no flags)

cksum 表示校驗和,其中correct表示校驗和正確

抓取目的端口等于80的報文:

tcpdump -i eth2 -nn -vv '((tcp[2:2] = 80))'  //TCP頭部的3-4字節為目的端口

抓取源端口等于80的報文:

tcpdump -i eht1 -nn -vv '((tcp[0:2] = 80))'  //TCP頭部的1-2字節為源端口

** TCP的8種標記,這些標記在TCP頭部的14字節——tcp[13]。TCP使用哪個標記,就會將這個標記的值置為1,如SYN包的二進制表示為: 00000010,十進制就是2

 +-+-+-+-+-+-+-+-+

 |C|E|U|A|P|R|S|F|

 |W|C|R|C|S|S|Y|I|

 |R|E|G|K|H|T|N|N|

 +-+-+-+-+-+-+-+-+

只抓TCP握手過程中的SYN包:

tcpdump -i eth2 -nn -vv '((tcp[13] = 2))'  這個時候標識位的值為 00000010

抓標記為SYN、ACK的包:

tcpdump -i eth4 -nn -vv '((tcp[13] = 18))'  此時標識位的至為 00010010

其他標識位抓包方法一次類推。這種通過數字計算的或許會比較麻煩,因此tcpdump支持了另一種寫法,上面兩種寫法分別如下:

tcpdump -i eth4 -n -vv "tcp[tcpflags] & (tcp-syn) != 0"

tcpdump -i eth4 -nn -vv '((tcp[tcpflags] & tcp-syn != 0) and (tcp[tcpflags] & tcp-ack != 0 ))'

[root@tw13c150 ~]# tcpdump -i eth4 -n -vv "tcp[tcpflags] & (tcp-ack) != 0" and \(host 218.8.51.194\)

tcpdump: listening on eth4, link-type EN10MB (Ethernet), capture size 65535 bytes

13:46:26.019271 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52)

    182.118.126.96.http > 218.8.51.194.58137: Flags [S.], cksum 0xfbc7 (correct), seq 769939001, ack 1488795467, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0

13:46:26.049499 IP (tos 0x0, ttl 56, id 34444, offset 0, flags [DF], proto TCP (6), length 40)

    218.8.51.194.58137 > 182.118.126.96.http: Flags [.], cksum 0x752f (correct), seq 1488795467, ack 769939002, win 115, lengt

其他協議抓包(DNS、HTTP等)

HTTP:tcpdump -i eth4 -nn -vv 'tcp[20:2]=0x4745 or tcp[20:2]=0x4854'//tcp[20:2]=0x4745 表示'GET'的'GE',tcp[20:2]=0x4854 表示HTTP的 'HT'DNS:tcpdump -i eth2 udp dst port 53

    最后,如果需要查看數據內容,可使用tcpdump -s 0 -w filename把數據包都保存下來(-s 0是抓取完整數據包,否則默認只抓68字節。),然后用wireshark分析。

網絡丟包分析抓包技巧:

    我們公司的服務器上有很多ping程序,抓包時為了避免其它數據包的影響,我們可以抓特定長度的包。

以ICMP為例:

A端指定數據字節為 1024 bytes pingping -c 400 -i 0.01 -s 1024 -f tw04008s2.sandai.net//那么B端抓IP數據包的長度應為1024(數據長度)+8(8字節ICMP首部)+20(字節IP首部)tcpdump -i eth2 "(ip[2:2]=1052) and src host 123.59.127.2" -w loss.cap//這里的 ip[2:2] 指的是過濾從第三字節開始的兩個字節數,因此我過濾出的就是3、4字節

    其實捕獲數據包不難,但是我們要學會分析、清洗數據,這就需要十分熟悉各類協議,尤其是TCP,IP,HTTP等

04

內存服務工具

1

Volatility 

volatility 是一款內存取證和分析工具,可以對 dump 出來的內存進行分析,并提取內存中的文件。支持多平臺運行(需要python環境),該工具支持 Windows 和 Linux,Kali 下面默認已經安裝。

    下載地址:http://www.volatilityfoundation.org/#!releases/component_71401

2

使用方法

要查看可用選項,請運行“python vol.py -h”或“python vol.py —info”

root@kali:~/volatility-master# python vol.py -hVolatility Foundation Volatility Framework 2.6.1Usage: Volatility - A memory forensics analysis platform.

Options:

-h, --help  //list all available options and their default values.Default values may be set in the configuration file(/etc/volatilityrc)--conf-file=/root/.volatilityrc  //User based configuration file-d, --debug  //Debug volatility--plugins=PLUGINS    //Additional plugin directories to use (colon separated)--info  //Print information about all registered objects--cache-directory=/root/.cache/volatility    //Directory where cache files are stored--cache    //Use caching--tz=TZ    //Sets the (Olson) timezone for displaying timestamps.using pytz (if installed) or tzset-f FILENAME, --filename=FILENAME    //Filename to use when opening an image--profile=WinXPSP2x86    //Name of the profile to load (use --info to see a list of supported profiles)-l LOCATION, --location=LOCATION    //A URN location from which to load an address space-w, --write    //Enable write support--dtb=DTB    //DTB Address--shift=SHIFT    //Mac KASLR shift address--output=text    //Output in this format (support is module specific, see the Module Output Options below)--output-file=OUTPUT_FILE    //Write output in this file-v, --verbose    //Verbose information--physical_shift=PHYSICAL_SHIFT    //Linux kernel physical shift address--virtual_shift=VIRTUAL_SHIFT    //Linux kernel virtual shift address-g KDBG, --kdbg=KDBG  //Specify a KDBG virtual address (Note: for 64-bit Windows 8 and above this is the address of KdCopyDataBlock)--force    //Force utilization of suspect profile-k KPCR, --kpcr=KPCR    //Specify a specific KPCR address--cookie=COOKIE    //Specify the address of nt!ObHeaderCookie (valid for Windows 10 only)

支持以下插件:

linux_apihooks  - 檢查userland apihookslinux_arp  - 打印ARP表linux_aslr_shift  - 自動檢測Linux ASLR轉換linux_banner  - 打印Linux橫幅信息linux_bash  - 從bash進程內存中恢復bash歷史記錄linux_bash_env  - 恢復進程的動態環境變量linux_bash_hash  - 從bash進程內存中恢復bash哈希表linux_check_afinfo  - 驗證網絡協議的操作函數指針linux_check_creds  - 檢查是否有任何進程共享憑證結構linux_check_evt_arm  - 檢查異常向量表以查找syscall表掛鉤linux_check_fop  - 檢查rootkit修改的文件操作結構linux_check_idt  - 檢查IDT是否已被更改linux_check_inline_kernel  - 檢查內聯內核掛鉤linux_check_modules  - 將模塊列表與sysfs信息進行比較(如果有)linux_check_syscall  - 檢查系統調用表是否已被更改linux_check_syscall_arm  - 檢查系統調用表是否已被更改linux_check_tty  - 檢查tty設備的掛鉤linux_cpuinfo  - 打印有關每個活動處理器的信息linux_dentry_cache  - 從dentry緩存中收集文件linux_dmesg  - 收集dmesg緩沖區linux_dump_map  - 將選定的內存映射寫入磁盤linux_dynamic_env  - 恢復進程的動態環境變量linux_elfs  - 在進程映射中查找ELF二進制文件linux_enumerate_files  - 列出文件系統緩存引用的文件linux_find_file  - 列出并恢復內存中的文件linux_getcwd  - 列出每個進程的當前工作目錄linux_hidden_modules  - 刻錄內存以查找隱藏的內核模塊linux_ifconfig  - 收集活動接口linux_info_regs  - 就像GDB中的'info registers'。它打印出所有的linux_iomem  - 提供類似于/ proc / iomem的輸出linux_kernel_opened_files  - 列出從內核中打開的文件linux_keyboard_notifiers  - 解析鍵盤通知程序調用鏈linux_ldrmodules  - 將proc映射的輸出與libdl中的庫列表進行比較linux_library_list  - 列出加載到進程中的庫linux_librarydump  - 將進程內存中的共享庫轉儲到磁盤linux_list_raw  - 列出具有混雜套接字的應用程序linux_lsmod  - 收集加載的內核模塊linux_lsof  - 列出文件描述符及其路徑linux_malfind  - 查找可疑的進程映射linux_memmap  - 轉儲linux任務的內存映射linux_moddump  - 提取加載的內核模塊linux_mount  - 收集已安裝的fs /設備linux_mount_cache  - 從kmem_cache收集已安裝的fs / deviceslinux_netfilter  - 列出Netfilter掛鉤linux_netscan  - 用于網絡連接結構linux_netstat  - 列出打開的套接字linux_pidhashtable  - 通過PID哈希表枚舉進程linux_pkt_queues  - 將每個進程的數據包隊列寫入磁盤linux_plthook  - 掃描ELF二進制文件的PLT以掛鉤到非NEEDED圖像linux_proc_maps  - 收集進程內存映射linux_proc_maps_rb  - 通過映射紅黑樹收集linux的進程映射linux_procdump  - 將進程的可執行映像轉儲到磁盤linux_process_hollow  - 檢查進程空洞的跡象linux_psaux  - 收集進程以及完整的命令行和開始時間linux_psenv  - 收集進程及其靜態環境變量linux_pslist  - 通過遍歷task_struct->任務列表來收集活動任務linux_pslist_cache  - 從kmem_cache中收集任務linux_psscan  - 掃描進程的物理內存linux_pstree  - 顯示進程之間的父/子關系linux_psxview  - 查找包含各種流程列表的隱藏流程linux_recover_filesystem  - 從內存中恢復整個緩存的文件系統linux_route_cache  - 從內存中恢復路由緩存linux_sk_buff_cache  - 從sk_buff kmem_cache中恢復數據包linux_slabinfo  - 正在運行的機器上的Mimics / proc / slabinfolinux_strings  - 將物理偏移與虛擬地址匹配(可能需要一段時間,非常詳細)linux_threads  - 打印進程的線程linux_tmpfs  - 從內存中恢復tmpfs文件系統linux_truecrypt_passphrase  - 恢復緩存的Truecrypt密碼linux_vma_cache  - 從vm_area_struct緩存中收集VMAlinux_volshell  - 內存映像中的Shelllinux_yarascan  -  Linux內存映像中的shell

下面簡單介紹以Linux dump出來的內存文件分析

查看網絡連接信息:

Linux的常用工具有哪些

查看進程信息

Linux的常用工具有哪些

05

信息收集工具

1

FastIR Collector

   FastIR Collector Linux,可以快速完成Linux服務器各項數據的信息收集,無需掌握linux各種復雜的命令與參數。該工具可以收集:系統信息(內核版本、內核模塊、網絡接口、主機名、發行版本),用戶登錄信息,網絡連接,用戶數據,自動進程,磁盤信息,文件系統信息等,并將結果輸出為csv文件。FastIRcollector同樣也有Windows的版本,可以用來收集Windows系統信息。

下載地址:git clone https://github.com/SekoiaLab/Fastir_Collector_Linux.git

運行環境:代碼運行在python2環境下,python 2.4以上版本。必須以root賬戶運行

2

使用方法

cd Fastir_Collector_Linuxpython fastIR_collector_linux.py  www.gendan5.com

命令執行后,會生成output目錄,收集的所有數據會打包放在該目錄下。

使用sz命令下載該壓縮包到本地環境。(yum install -y lszrz,可安裝rz與sz)

也可以使用ftp或sftp傳輸

Linux的常用工具有哪些

Linux的常用工具有哪些

參數:

Linux的常用工具有哪些

到此,相信大家對“Linux的常用工具有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女