• 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
      
  • 相关阅读:
    驼峰命名法
    Java中有关Null的9件事
    java开发中JDBC连接数据库代码和步骤
    TestNG 与 Junit的比较
    洛谷 P1880 [NOI1995]石子合并(区间dp,断环为链)
    洛谷 P1901 发射站(单调栈)
    洛谷 P2947 [USACO09MAR]向右看齐Look Up(单调栈)
    洛谷 P2629 好消息,坏消息(前缀和,单调队列,断环为链)
    洛谷 P3810 【模板】三维偏序(陌上花开)(CDQ分治)
    洛谷 CF429D Tricky Function(平面最近点对,分治)
  • 原文地址:https://www.cnblogs.com/ssooking/p/5880976.html
Copyright © 2020-2023  润新知