Linux安全審計命令


安全審計 

數據分析
capinfos  xxx.pcap   產看數據包基本信息

日志分析
who /var/log/wtmp  #查看登錄用戶信息          

哈希校驗
sha265 文件名
md5sum 文件名 > hash.txt     然后把hash.txt與源文件放在一個文件夾   
md5sum -c hash.txt    #將hash.txt中的hash值與源文件對比


常用安全命令
#  使用 uid  查找對應的程序 :find / ­uid 0 ­perm ­4000 
#  查找哪里擁有寫權限 :find / ­perm ­o=w 
#  查找名稱中包含點和空格的文件 
    find / ­name " " ­print 
    find / ­name ".." ­print 
    find / ­name ". " ­print 
    find / ­name " " ­print 
#  查找不屬於任何人的文件 :find / ­nouser 
#  查找未鏈接的文件 :lsof +L1 
#  獲取進程打開端口的信息 :lsof ­i 
#  看看 ARP  表:arp -a 
#  查看所有賬戶 :getent passwd 
#  查看所有用戶組 :getent group 
#  列舉所有用戶的 crontabs 
#  生成隨機密碼 
  cat /dev/urandom| tr ­dc ‘a­zA­Z0­9­_!@#$%^&*()_+{}|:<>?=’|fold ­w 12| head ­n 4 

#  使文件不可修改 :chattr +­i filename
#  查找所有不可修改的文件:find . | xargs ­I file lsattr ­a file 2>/dev/null | grep ‘^....i’ 

禁止以root管理員進行ssh遠程登錄
#vi /etc/ssh/sshd_config
修改:PermitRootLogin yes  為:PermitRootLogin no 
#service sshd restart   //重啟sshd服務
 
Linux禁止非WHEEL用戶使用SU命令
一般用戶通過執行“su -”命令、輸入正確的root密碼,可以登錄為root用戶
為了加強安全性,建立一個管理員的組,只允許這個組的用戶來執行“su -”命令登錄為root用戶,在UNIX和Linux下,這個組的名稱通常為“wheel”

步驟:
# usermod -G wheel dongee  將一般用戶 dongee 加在管理員組wheel組中
#vi /etc/pam.d/su  
#auth required /lib/security/$ISA/pam_wheel.so use_uid  ← 找到此行,去掉行首的“#”
# echo “SU_WHEEL_ONLY yes” >> /etc/login.defs 

代碼審計
檢查匹配到元數據字符串和頭部信息: strings 文件名
查看文件基本信息: file 文件名
查看文件頭基本信息: head 文件名 
strings filename   輸出ASCII碼字符串
strings -n 長度  filename | sort -u | less    # -n參數匹配最小長度   
xxd 文件名  #把文件轉換成十六進制(可在vim下使用 :%!xxd)
       
        0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49  ....9..;..tt.+NI 
        0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30  K,.`.....b..4^.0 
        0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9  7;'1.".....i.59. 

    Vim閱讀和編輯這些文本后使用 :%!xxd -r 命令把它轉換回來

:%!xxd -g 1  切換到十六進制模式顯示
只有十六進制部分的修改才會被采用。右邊可顯示文本部分的修改忽略不計。
如果需要專門的命令行十六進制編輯器,可以試一下hexedit。
圖形界面的十六進制編輯器可以使用ghex2,bless
瀏覽十六進制文件可以用hexdump -C <file>


upx -d 文件名  #upx脫殼
匯編/反匯編:
objdump --disassemble(-d)  filename  >  HuiBian.txt    #生成匯編指令
objdump -a filename   #查看 libevent.a 中包含哪些 .o 文件(權限+格式)

nasm -f elf hello.asm    #生成匯編代碼
ld -s -o hello hello.o    #調用鏈接器生成可執行程序
./hello                 #執行程序


NASM 命令
注:NASM 全稱 The Netwide Assembler,是一款基於80×86和x86­64平台的匯編語言編譯程序,其設計初衷是為了實現編譯器程序跨平台和模塊化的特性。
nasm  ­f bin ­o payload .bin payload .asm 
nasm  ­f elf payload .asm; ld  ­o payload payload .o; objdump  ­d  payload 

編譯 Assemble 代碼
$ nasm ­f elf32 simple32.asm ­o simple32.o 
$ ld ­m elf_i386 simple32.o simple32 
$ nasm ­f elf64 simple.asm ­o simple.o 
$ ld simple.o ­o simple 

編譯過程
預編譯(處理)(Prepressing):生成.i文件
處理#開頭的文件包含及預編譯指令,展開宏定義,刪注釋,添行號,保留#pragma編譯器指令
編譯(Compilation):詞法,語法,語義分析及優化
匯編(Assembly):將匯編代碼轉換成機器可執行的指令
鏈接(Linking): 把目標文件和庫文件鏈接成可執行文件

預編譯:gcc -E hello.c -o hello.i    或者   cpp hello.c > hello.i 
編譯:gcc -S hello.i -o hello.s     或者       gcc -S hello.c -o hello.s
匯編:as hello.s -o hello.o        或者      gcc -c hello.s(hello.c) -o hello.o
鏈接:ld -o hello hello.c

gcc編譯並調試程序hello.c:
gcc -ggdb -mpreferred-stack-boundary=2 -fno-stack-protector -o hello hello.c
  -ggdb : 生成額外的調試信息,使用gdb時比較有用
  -mpreferred-stack-boundary=2 : 使用DWORD大小的棧編譯程序,簡化調試過程
  -fno-stack-protector : 禁用棧保護
  -z execstack : 啟用可執行棧(gcc4.1默認禁用)
gcc -static -o hello hello.c

gdb調試生成反匯編代碼:  (gdb)disass _文件名    
# 設置斷點: b 函數名(不加括號)     #開始運行:(gdb)r
gdb -q hello
(gdb) set disassembly-flavor <intel/att>  #在Intel(NASM)和AT&T格式中切換
(gdb) disassemble 函數名    #反匯編指定函數


APK逆向
classes.dex:包含在Android系統的Dalvik虛擬機中執行的程序代碼
apktool d 輸出文件夾名 test_apk
dex2jar -v classes.dex  #把dex文件轉換為jar文件
unzip classes-dex2jar.jar -d java_class
  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM