常用指令 March 23, 2021

linux下常用指令整合

Words count 21k Reading time 19 mins. Read count 0

一、单纯方便记忆

有时记不住那么多,有些用的不多的就直接写了,觉得好记性不如烂笔头,hhhh~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
make test //直接生成没有什么保护的程序
gcc -o test test.c // 默认情况下,开启Canary保护,开启NX保护,不开启PIE,不开启RELRO保护
g++ -o test test.c //编译C++程序,其他相同
gcc -m32 -o test test.c //编译32位的程序:加个-m32

gcc -fno-stack-protector -o test test.c //禁用栈保护

gcc -fstack-protector -o test test.c //启用堆栈保护,不过只为局部变量中含有 char 数组的函数插入保护代码
gcc -fstack-protector-all -o test test.c //启用堆栈保护,为所有函数插入保护代码

gcc -g -z execstack -o test test.c // 禁用NX保护
gcc -z noexecstack -o test test.c // 开启NX保护

gcc -fpie -pie -o test test.c // 开启PIE,此时强度为1
gcc -fPIE -pie -o test test.c // 开启PIE,此时为最高强度2

gcc -z norelro -o test test.c // 关闭,即No RELRO
gcc -z lazy -o test test.c // 部分开启,即Partial RELRO,got表可改
gcc -z now -o test test.c // 全部开启,即got表不可改

gcc -s -fstack-protector-all -fpie -pie -z now -o test test.c // 保护全开!
format strings:
-D_FORTIFY_SOURCE=0(close)
-D_FORTIFY_SOURCE=1 -O1(open1)
-D_FORTIFY_SOURCE=2 -O2(open2)

-s (delete strings table) //df

//one time Docker create pwn environment
//Edit ctf.xinetd. replace ./helloworld to your challenge.
sudo docker build -t "helloworld" .
sudo docker run -d -p "0.0.0.0:7777:9999" -h "helloworld" --name="helloworld" helloworld

sudo docker cp uuu aded663b997c:/home/ctf/ //从宿主机拷贝文件到容器中
sudo docker cp aded663b997c:/home/ctf/chunk /home/dell/V1ct0r/chunk/ //从容器中拷贝文件到宿主机

sudo apt-get install -f //解决软件包依赖问题
//How to use docker

//查看本地已有镜像
suod docker images
//运行镜像并进入
sudo docker run -i -t httpd /bin/bash
//后台运行镜像httpd,镜像8080端口映射到主机80端口
sudo docker run -d -p 80:8080 httpd
//进入已有容器
sudo docker exec -it [container-id] /bin/bash
//关闭容器
sudo docker stop container-id/name
//开启容器
sudo docker start container-id/name
//查看当前正在运行的镜像
sudo docker ps
//删除容器
sudo docker rm container-id/name




//PIE

sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space" //关闭内存地址随机化
sudo sh -c "echo 1 > /proc/sys/kernel/randomize_va_space" //开启内存地址随机化

ln -s /mnt/hgfs/sharefile/ /home/v1ct0r/Desktop/ //共享文档移动到桌面copy命令

docker run -t -i containname /bin/bash //进入容器

ROPgadget --binary libc.so.6 --only "pop|ret" | grep "rdx"

python Startmain.py file main_addr

//printf flag 关闭输出时
cat flag>&0
exec /bin/sh 1>&0

strings file | grep GCC


1.文件目录操作命令
ls                 显示文件和目录列表  
-l                列出文件的详细信息
-a                列出当前目录所有文件,包含隐藏文件
mkdir          创建目录  
-p                父目录不存在情况下先生成父目录
cd                切换目录
touch          生成一个空文件
echo            生成一个带内容文件
cat、tac      显示文本文件内容
cp                复制文件或目录

rm               删除文件
-r             同时删除该目录下的所有文件
-f             强制删除文件或目录

mv              移动文件或目录、文件或
mv  aaa bbb 将aaa改名为bbb
find            在文件系统中查找指定的文件
-name  文件名
wc               统计文本文档的行数,字数,字符数
grep            在指定的文本文件中查找指定的字符串
rmdir          删除空目录
tree            显示目录目录改名树
pwd            显示当前工作目录
ln                建立链接文件
more、less 分页显示文本文件内容


2.信息显示命令
stat              显示指定文件的相关信息,比ls命令显示内容更多
who、w      显示在线登录用户
whoami      显示用户自己的身份
hostname   显示主机名称
uname        显示系统信息
dmesg        显示系统启动信息
top              显示当前系统中耗费资源最多的进程
ps               显示瞬间的进程状态
du               显示指定的文件(目录)已使用的磁盘空间的总量
df                 显示文件系统磁盘空间的使用情况
free              显示当前内存和交换空间的使用情况
ifconfig         显示网络接口信息
ping             测试网络的连通性
netstat         显示网络状态信息
Man             命令帮助信息查询
Clear           清屏
kill                杀死一个进程 
Kill -9           强制杀死一个进程




3备份压缩命令
gzip             压缩(解压)文件或目录,压缩文件后缀为gz
bzip2           压缩(解压)文件或目录,压缩文件后缀为bz2
tar                文件、目录打(解)包
gzip命令:
命令格式:
gzip [选项] 压缩(解压缩)的文件名
参数:
-d                 将压缩文件解压。
-l                  对每个压缩文件,显示压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字
-v                 对每一个压缩和解压的文件,显示文件名和压缩比。
-num            用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6



bzip2命令:
命令格式:
bzip2 [-cdz] 档名
参数:
-d :           解压缩的参数
-z :           压缩的参数
-num           用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6


tar命令
命令格式:
tar [-cxzjvf]   压缩打包文档的名称 欲备份目录
参数:
-c :         建立一个归档文件的参数指令
-x :         解开一个压缩文件的参数指令!
-z :         是否需要用 gzip 压缩?
-j :          是否需要用 bzip2 压缩?
-v :         压缩的过程中显示文件
-f :          使用档名,在 f 之后要立即接档名
-tf :         查看归档文件里面的文件
例如:

仅打包,不压缩
tar -cvf /home/morgen.tar /home/morgen
打包后,以gzip压缩
tar -zcvf /home/morgen.tar.gz /home/morgen
打包后,以bzip2压缩
tar -jcvf /home/imorgen.tar.bz2 /home/morgen


4关机/重启命令
shutdown   系统关机
-r                 关机后立即重启
-h                关机后关闭电源

-time          设定关机〔shutdown〕前的时间。

-now           立即关机

halt           关机后关闭电源
reboot       重新启动


#pwngdb的使用方法
libc : Print the base address of libc
ld : Print the base address of ld
codebase : Print the base of code segment
heap : Print the base of heap
got : Print the Global Offset Table infomation
dyn : Print the Dynamic section infomation
findcall : Find some function call
bcall : Set the breakpoint at some function call
tls : Print the thread local storage address
at : Attach by process name
findsyscall : Find the syscall
fmtarg : Calculate the index of format string
You need to stop on printf which has vulnerability.
force : Calculate the nb in the house of force.
heapinfo : Print some infomation of heap
heapinfo (Address of arena)
default is the arena of current thread
If tcache is enable, it would show infomation of tcache entry
heapinfoall : Print some infomation of heap (all threads)
arenainfo : Print some infomation of all arena
chunkinfo: Print the infomation of chunk
chunkinfo (Address of victim)
chunkptr : Print the infomation of chunk
chunkptr (Address of user ptr)
mergeinfo : Print the infomation of merge
mergeinfo (Address of victim)
printfastbin : Print some infomation of fastbin
tracemalloc on : Trace the malloc and free and detect some error .
You need to run the process first than tracemalloc on, it will record all of the malloc and free.
You can set the DEBUG in pwngdb.py , than it will print all of the malloc and free infomation such as the screeshot.
parseheap : Parse heap layout
magic : Print useful variable and function in glibc
fp : show FILE structure
fp (Address of FILE)
fpchain: show linked list of FILE
orange : Test house of orange condition in the _IO_flush_lockp
orange (Address of FILE)
glibc version <= 2.23
0%