统计文件中每个字符串的长度
grep -o . file.txt | sort | uniq -c | sort -rn
Python使用其他镜像安装包
pip3 install –index https://pypi.mirrors.ustc.edu.cn/simple/ scapy-http
Python将16进制字符串转化为ascii码
a = “456e”
‘’.join([chr(int(b, 16)) for b in [a[i:i+2] for i in range(0, len(a), 2)]])
Python将16进制字符串转为2进制字符串
a = “456e”
‘’.join([(bin(int(b, 16))[2:]).zfill(8) for b in [a[i:i+2] for i in range(0, len(a), 2)]])
Python二进制字符串转16进制字符串
str = “0100010101101110”
‘’.join([(hex(int(b, 2))[2:]).zfill(2) for b in [a[i:i+8] for i in range(0, len(a), 8)]])
hexdump使用
hexdump [filename] 以16进制查看文件
hexdumlp -C [filename] 以16进制查看文件同时显示ascii码
7z使用
7z x [压缩包]
binwalk使用
binwalk [filename] 查看文件信息
binwalk -e [filename] 提取文件
strings使用
strings -10 [filename] 从二进制文件或普通文件中查找可打印的字符串,-10 设置显示的最小字符串
base64使用
echo [base64字符串] | base64 -d base64解密
echo [字符串] | base64 base64加密
debin,ubuntu删除所有带 rc 标记的dpkg包
dpkg -l | grep ^rc | cut -d’ ‘ -f3 | sudo xargs dpkg –purge
批量计算文件夹中所有文件md5值
md5sum *
LSB检查
1
2
3
4 > >>> import Image
> >>> a=Image.open('zxczxc.png')
> >>> a.point(lambda i: 255 if i&1 else 0).show()
>
查看文件夹下边的某个字符串
grep -rn -A10 -B5 “php_string_shuffle” ./
grep -rn -A10 -B5 “php_string_shuffle” -l ./ 只列出文件名
监控目录变化
watch -n2 ls -l /proc/11631/fd/
dd命令使用
dd if=carter.jpg of=carter-1.jpg skip=140147 bs=1
dd if=./test of=./test1 count=1 bs=3 skip=2
if 从目标文件中提取数据
of 提取的数据保存的位置
count 从目标文件中提取的块数
bs 一次性读取或者写入的字节数
skip 跳过几个块
上边的命令就是从test文件中的第6(skip bs = 2 3)个字节开始,读3(count bs = 1 3)个字节,写入到test1文件中。
shell文件去重
sort filename | uniq
socat启动一道pwn题目
socat tcp-l:8080,fork exec:./note,reuseaddr
exiftool使用
exiftool [picture_name]
exiftool -Exif:ImageDescription=”%^&*()[]{}” [picture_name]
curl发送请求
curl -d “param1=value1¶m2=value2” -b “cookie_name1=value1&cookie_name2=value2” url
curl上传文件,传递多个参数,一个参数需要一个
-F
curl -F “file=@composer.json“ -F “chunks=3” -F “chunk=1” -F “name=1.jsp” “http://localhost:8080/fileupload"
url中需要转义字符如下:
[
,]
,{
,}
curl保存cookie到文件中,并使用该cookie,可以及时更新cookie
curl -v www.baidu.com -c ./cookie -b ./cookie
curl 发送json字符串
curl -v -H “Content-Type:application/json” -X POST –data ‘{“code”:”cwdjwz”}’ http://35.207.132.47/api/verify
grep匹配字符串
grep -Eo “regex_expr”
grep -i “connection” -r ./ –include *.class # 递归在目录中class结尾的文件中查询字符串
grep -i “connection” -r ./ –include *.{class|xml}
查找文件
find / -name “flag”
ngrep监听80端口
ngrep -W byline -d eth0 port 80
scp命令使用
A.104.238.161.75,B.43.224.34.73
A服务器下操作,将B服务器下/home/lk目录下所有文件复制到本地/home目录下
scp -r root@43.224.34.73:/home/lk /home
在A服务器上将/root/lk目录下所有的文件传输到B的/home/lk/cpfile目录下
scp -r /root/lk root@43.224.34.73:/home/lk/cpfile
nc传送文件
A.104.238.161.75 B.43.224.34.73
将B服务器文件【test.txt】从B服务器传送到A服务器下
方案一:
A: nc -l [port] > text.txt
B: nc 104.238.161.75 [port] < test.txt
方案二:
A: nc 43.224.34.73 [port] > test.txt
B: nc -l [port] < test.txt
传输目录:
A机器给B机器发送多个文件,需要结合其它的命令,比如tar,经过测试管道后面最后必须是 - ,不能是其余自定义的文件名
B: nc -l [port] | tar xfvz -
A: tar cfz - * | nc 43.224.34.73 [port]
tcpdump抓包
sudo tcpdump tcp -c 100 -i ens33 -nn -XX -vv
-c 抓取的数量
-i 指定端口
sudo tcpdump -c 100 -XX -nn -vv -i ens33 tcp[20:2]=0x4745 or tcp[20:2]=0x4854
抓取网卡ens33中的http包
0x4745 => ‘GE’ 0x4854 => “HT”
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 tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ]
[ -s snaplen ] [ -w file ] [ expression ]
抓包选项:
-c:指定要抓取的包数量。注意,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能已经处理了100个包,只不过只有10个包是满足条件的包。
-i interface:指定tcpdump需要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要抓取loopback接口使用tcpdump -i lo),
:一旦找到第一个符合条件的接口,搜寻马上结束。可以使用'any'关键字表示所有网络接口。
-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。
-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
-N:不打印出host的域名部分。例如tcpdump将会打印'nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。
-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断,若出现包截断,
:输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的数据包的数量,
:从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好。
输出选项:
-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-v:当分析和打印的时候,产生详细的输出。
-vv:产生比-v更详细的输出。
-vvv:产生比-vv更详细的输出。
其他功能性选项:
-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效。
-w:将抓包数据输出到文件中而不是标准输出。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。
-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。
临时DNS解析网站
http://dnsbin.zhack.ca/#master=a901ccef8fc26818ea0e
使用方法: 1
2
## 全种类浏览器内网IP地址扫描(javascript版)
<!DOCTYPE html>
`
前端端口扫描
https://github.com/SkyLined/LocalNetworkScanner.git
大素数分解网站
http://www.factordb.com/index.php?query=542800573380084826910381
centos防火墙
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
firewall-cmd --zone=public --list-ports