vlambda博客
学习文章列表

linux命令部分总结

        群里ID '啊这_赵相霖' 师傅翻译的文案,特意和我说一定要分享给到大家,所以我就借花献佛了。感谢师傅分享!


L

linux命令

红/蓝

文件系统

  1. 列出当前目录下的项目 ls

  2. 用长格式列出当前文件夹下的所有项目 ls -l

  3. 列出当前目录中的所有项目,并显示带有斜杠的目录和带星号的可执行文件 ls -F

  4. 列出党建文件夹下的所有文件,包括隐藏文件 ls -a

  5. 列出目录路径下的所有项目 ls dir

  6. 改变目录到dir cd dir

  7. 返回上一级 cd ..

  8. 去往根目录 cd /

  9. 去家目录 cd ~

  10. 返回你去过的上一个目录 cd -

  11. 当前路径 pwd

  12. 创建目录 mkdir dir

  13. 删除文件 rm file

  14. 删除目录 rm -r dir

  15. 将文件file1拷贝为file2 cp file1 file2

  16. 以递归方式将目录 dir1 复制到 dir2 cp -r dir1 dir2

  17. (rename)将文件1重命名为文件2 mv file1 file2

  18. 创建文件符号链接 ln -s file link

  19. 创建或者更新文件 touch file

  20. 输出文件全文到终端上 cat file

  21. 使用页面导航查看文件 less file

  22. 输出文件最开头的10行 head file

  23. 输出文件最后10行 tail file

  24. 随着文件的增长输出文件的内容,从最后 10 行开始 tail -f file

  25. 编辑文件 vim file

  26. 为命令创建别名 alias name '命令'

系统

  1. 系统版本 cat /etc/*release*

  2. 系统版本 cat /etc/issue

  3. kernel信息 cat /proc/version

  4. 显示当前日期和时间 date

  5. 显示磁盘使用情况 df

  6. 显示目录空间使用 du

  7. 显示用户信息 finger user

  8. 显示内存和交换使用情况 free

  9. 最后登录的yonghu last -a

  10. 显示命令手册 man 命令

  11. 显示任何已挂载的文件系统 mount

  12. 查询ip或者cidr主机名(cidr无类别域间路由) nbtstat -A <IP>/<CIDR>

  13. 重启机器 reboot

  14. 关机 shutdown

  15. cpu(arch)架构和kernel版本 uname -a

  16. 显示app可能存在的所有路径 whereis app

  17. 显示默认情况下将运行哪个应用 which app

  18. 组合用户信息 who -a

  19. 你登陆的是哪个用户 whoami

管理员进程

  1. 显示你当前活跃的进程 ps -aef

  2. 显示所有运行的进程 top

  3. 杀死进程id pid kill pid

  4. 强制杀死进程 id pid kill -9 pid

网络

  1. 开启ip转发 echo "1">/proc/sys/net/ipv4/ip_forward

  2. 插入一条新的dns服务进去 echo "nameserver <IP>" > /etc/resolv.conf

  3. 配置 eth 网卡ip ifconfig <eth#网卡> <IP>/<CIDR>

  4. wifi广播扫描 iwlist <wlan#网卡> scan

  5. 列出打开的文件连接状态 lsof -i

  6. 列出所有运行在80端口的进程 lsof -i tcp:80

  7. 顶部 tcp 网络连接状态 netstat -ant

  8. 顶部udp网络连接状态 netstat -anu

  9. 配置网关ip route add default gw <IP>

  10. 挂载Windows的C盘分享 share <USER> <IP> C$

  11. smb连接Windows的IPC共享 smb://<IP>/IPC$

  12. smbclient连接到共享 smbclient -U <USER>\\\\<IP>\\<SHARE>

  13. 连续网络连接状态 watch netstat -an

权限

  1. 列出当前目录下所有项目的创建日期以及权限 ls -lart

  2. 使用标记ugo改变文件的权限

    • u是改变用户权限

    • g是改变用户组权限

    • o每个用户都有的权限 用数字表示为:

    • 7 - 完全权限

    • 6 - 读+写

    • 5 - 读+执行

    • 4 - 只读

    • 3 - 只写+执行

    • 2 - 只写

    • 1 - 只执行

    • 0 - 屁都没的

  3. 你可以读写文件,适用于文件 chmod 600 file

  4. 你可以读写执行,适用于脚本 chmod 700 file

  5. 你可以读和写,任何人都可以读取,适用于网页 chmod 644 file

  6. 你可以读写执行,任何人都可以读和执行,适用于你想共享的项目 chmod 755 file

UTILITIES

  1. 下载文件 curl <url> -O

  2. 反向查找主机 dig -x host

  3. 查找域名的dns信息 dig domain.com

  4. 转换为unix格式 dos2unix file.txt

  5. 列出所有运行在80端口的进程 lsof -i tcp:80

  6. ping一下主机或者ip并获取结果(注:一般用于检查网络) ping host

  7. 将远程服务器上边的文件夹拷贝到本地,文件不加r,文件夹不加r报错 scp -r user@host:dir dir

  8. 将文件传送到远程服务器上 scp file user@host:dir

  9. 记录终端到文件 script -a file.txt

  10. ssh连接到主机到指定端口 ssh -p port user@host

  11. ssh连接到user ssh user@host

  12. 添加你的密钥到主机方便以后免密钥登陆 ssh-copy-id user@host

  13. 下载文件 wget <url> -O file.txt

  14. 获取域名的信息 whois domain.com

查找

  1. 文件中搜索 grep xxx file

  2. 在目录下搜索 grep -r xxx dir

  3. 在 dir 中以递归方式搜索模式,并且只在扩展名为 .ext 的文件中搜索 grep -r pattern dir --include='*.ext

  4. 在命令输出从中寻找xxx 命令 | grep xxx

  5. 在真实系统中查找文件的所有实例 find file

  6. 使用从 updatedb 命令构建的索引数据库查找文件的所有实例。比查找速度快得多 locate file

  7. 查找文件中所有出现的日,并将它们替换为 night - s 表示替代性,g 表示全局 - sed 还支持正则表达式sed -i 's/day/night/g' file

压缩

  1. 创建一个包含file的file.tar文件 tar cf file.tar file

  2. 从file.tar中提取file tar xf file.tar

  3. 创建一个tar的gzip压缩 tar czf file.tar.gz files

  4. 解压缩一个使用了压缩的tar宝 tar xzf file.tar.gz/file.tgz file

  5. 压缩一个文件并将其重命名为file.gz gzip file

  6. 还原file.gz到文件file gzip -d file.gz

  7. zip一个路径或者文件 zip -r <文件.zip> /path/*

快捷方式

  1. 将光标移动到行首 ctrl+a

  2. 将光标移动到行尾 ctrl+f

  3. 将光标向前移动 1 个单词 alt+f

  4. 将光标向后移动 1 个单词 alt+b

蓝队

波动性证据收集顺序 (RFC3227)

  1. 寄存器、缓存

  2. 路由表、arp 缓存、进程表、内核统计信息、内存

  3. 临时文件系统

  4. 磁盘

  5. 远程记录和监视与相关系统相关的数据

  6. 物理配置、网络拓扑

  7. Archival media

linux工件搜集

系统信息

shell date uname -a hostname cat /proc/version lsmod server --status-all

磁盘分区信息

fdisk -l

openfile和磁盘空间使用

shell lsof -i du df

网络配置/链接/套接字统计信息

shell ifconfig -a netstat -apetul netstat -plan netstat -plant ss -l ss -ta ss -tp

用户/账号信息

shell whoami who last lastb cat /var/log/auth.log cat /etc/passwd cat /etc/shadow cat /etc/sudoers cat /etc/sudoers.d/* cut -d: -f1 /etc/passwd getent passwd | cut -d: -f1 compgen -u xclip -o

进程/系统 调用/网络 流量

shell ps -s ps -l ps -o ps -t ps -m ps -a ps -aef ps -auxwf top strace -f -e trace=network -s 10000 <PROCESS WITH ARGUMENTS>; strace -f -e trace=network -s 10000 -p <PID>;

环境/启动/任务信息

shell cat /etc/profile ls /etc/profile.d/* cat /etc/profile.d/ ls /etc/cron.* ls /etc/cron.*/* cat /etc/cron.*/* cat /etc/crontab ls /etc/*.d cat /etc/*.d/* cat /etc/bash.bashrc cat ~/.bash_profile cat ~/.bashrc

Kernel/Browser/PAM插件和模块

shell ls -la /lib/modules/*/kernel/* ls -la ~/.mozilla/plugins ls -la /usr/lib/mozilla/plugins ls -la /usr/lib64/mozilla/plugins ls -la ~/.config/google-chrome/Default/Extensions/ cat /etc/pam.d/sudo cat /etc/pam.conf ls /etc/pam.d/

隐藏的目录和文件

find / -type d -name ".*"

不可变文件和目录

lsattr / -R 2> /dev/null | grep "\----i"

SUID/SGID/Sticky Bit特殊权限

find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -lg {} \;

没有用户/组名的文件和目录

find / \( -nouser -o -nogroup \) -exec ls -lg {} \;

当前目录下的文件类型

file * -p

文件系统上的可执行文件

find / -type f -exec file -p '{}' \; | grep ELF

文件系统上隐藏的可执行文件

find / -name ".*" -exec file -p '{}' \; | grep ELF

过去一天内修改的文件

find / -mtime -1

通过 SSH 远程分析流量

ssh root@<IP/HOST> tcpdump -i any -U -s 0 -w - 'not port 22'

Persistence Areas of Interest

shell /etc/rc.local /etc/initd /etc/rc*.d /etc/modules /etc/cron* /var/spool/cron/*

Audit Logs

shell ls -al /var/log/* ls -al /var/log/*tmp utmpdump /var/log/btmp utmpdump /var/run/utmp utmpdump /var/log/wtmp

过程取证

详细的过程信息

shell ls -al /proc/[pid] 提示: cwd = 恶意软件的当前工作目录 exe = 二进制位置以及它是否已被删除

恢复当前正在运行的已删除二进制文件

cp /proc/[PID]/exe /[destination]/[binaryname]

捕获并查看二进制文件

cp /proc/[PID]/ /[destination]/[PID]/

二进制哈希信息

shell sha1sum /[destination]/[binaryname] md5sum /[destination]/[binaryname]

进程命令行信息

shell cat /proc/[PID]/cmdline cat /proc/[PID]/comm 上述 2 个输出和 /proc/[PID]/exe 下指定的二进制名称存在显著差异,可能表示恶意软件试图保持未被检测到状态

进程环境变量

提示:包括运行二进制文件的用户 shell strings /proc/[pid]/environ cat /proc/[pid]/environ

处理文件描述符/映射

显示进程正在"访问"或使用的内容 shell ls -al /proc/[PID]/fd cat /proc/[PID]/maps

进程 堆/状态 信息

shell cat /proc/[PID]/stack cat /proc/[PID]/status

显示当前正在运行的已删除二进制文件

shell ls -alr /proc/*/exe 2> /dev/null | grep deleted

进程工作目录

包括恶意活动的常见目标目录shell ls -alr /proc/*/cwd ls -alr /proc/*/cwd 2> /dev/null | grep tmp ls -alr /proc/*/cwd 2> /dev/null | grep dev ls -alr /proc/*/cwd 2> /dev/null | grep var ls -alr /proc/*/cwd 2> /dev/null | grep home

记忆取证

转出记忆

shell dd if=/dev/kmem of=/root/kmem dd if=/dev/mem of=/root/mem

LiME

sudo insmod ./lime.ko "path=./Linmen.mem format=raw"

捕捉磁盘镜像

shell fdisk -l dd if=/dev/sda1 of=/[outputlocation]