Shell | 网络访问

网络访问、tcpdump命令

网络访问

sh,exec命令:执行子程序

  • sh:父进程会fork一个子进程,shell script在子进程中执行
  • source:在原进程中执行,不会fork子进程
  • exec:在原进程中执行,但是同时会终止原进程

curl命令:发送接收http请求

curl www.sina.com
curl -o [文件名] www.sina.com

# 自动跳转
curl -L www.sina.com               
# 显示头信息, 页面代码一起显示 
curl -i www.sina.com                
# 只显示头信息
curl -I www.sina.com                
# 显示http通讯的整个过程
curl -v www.sina.com        
        
curl --trace output.txt www.sina.com
curl --trace-ascii output.txt www.sina.com

curl example.com/form.cgi?user=xxx
curl -X POST --data "user=hacker" example.com/form.cgi
curl -X POST --data-urlencode "user=hacker" example.com/form.cgi

curl -X POST www.example.com
curl -X DELETE www.example.com

# 上传文件
curl --form upload=@localfilename [URL]         
curl --referer http://www.example.com http://www.example.com

 # 设置user agent
curl --user-agent "[User Agent]" [URL]         

curl --cookie "user=hacker" www.example.com
# 保存cookie信息到cookies文件
curl -c cookies http://example.com             
# 使用 cookies文件中保存的cookie信息 
curl -b cookies http://example.com              

curl --header "Content-Type:application/json" http://example.com
curl --user name:password example.com

wget命令:下载网络文件

wget -o FILE url # 输出到文件
wget -a FILE url # 追加到文件
wget -d url      # 显示输出信息
wget -q url      # 不显示输出信息
wget -i FILE    # 从文件中读取url

wget -r url       # 递归下载整个网站
wget -l url       # 下载层次

iconv命令:对于给定文件把它的内容从一种编码转换成另一种编码

iconv -f encoding # 把字符从encoding编码开始转换
iconv -t encoding # 把字符转换到encoding编码
iconv -l          # 列出已知的编码字符集合
iconv -o file   # 指定输出文件

# 把文件file1从EUC-JP-MS转换位UTF-8编码,输出到file2
iconv  -f EUC-JP-MS -t UTF-8 file1 -o file2    

nmap命令:网络扫描

nmap -O 192.168.0.102
nmap -sP 192.168.219.1/24          # 探测此网段的存活主机
nmap -sS 192.168.219.100-110 -p 22 # SYN扫描
nmap -sV 192.168.219.101 -p1-65535 # 探测端口的服务和版本

tcpdump命令

tcpdump是一个运行在命令行下的嗅探工具,它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包

yum install -y tcpdump

#####
# -c 抓包数
# -w 写入文件
# -n 不进行域名解析
# -tttt 增加时间戳
# -i 特定网卡
# icmp 制定协议
#####
tcpdump -c 50 -n -tttt -w 20161001.pcap -i eth0 'icmp' 
tcpdump -r 20161001.pcap # -r 读取文件
# -A 以ascii的方式显示数据包
tcpdump -i eth0 -nnA 'port 80 and src host 172.17.0.2'  

# -nn ip和port的方式显示
tcpdump -i eth0 -nn 'tcp and host 172.17.0.2'           
tcpdump -i eth0 -nn 'tcp and src host 172.17.0.2'
tcpdump -i eth0 -nn 'tcp and dst host 172.17.0.2'

tcpdump -i eth0 -nn 'tcp and port 22'
# 源端口22
tcpdump -i eth0 -nn 'tcp and src port 22'  
# 目的端口22
tcpdump -i eth0 -nn 'tcp and dst port 22'            
# 抓取非22端口数据包   
tcpdump -i eth0 -nn 'tcp and !port 22'                 

# 源网段、目的网段
tcpdump -i eth0 -nn 'tcp and net 192.168'      
# 源网段         
tcpdump -i eth0 -nn 'tcp and src net 192.168'           
# 目的网段
tcpdump -i eth0 -nn 'tcp and dst net 192.168'           

# 只抓SYN包
tcpdump -i eth0 -nn 'tcp[tcpflags] = tcp-syn'       

# 抓SMTP数据包
# 数据区开始为"MAIL","MAIL"的十六进制为 0x4d41494c    
tcpdump -i eth0 '((port 25) and (tcp[(tcp[12]>>2):4] = 0x4d41494c))' 

# 抓HTTP GET数据包
# "GET "的十六进制是 0x47455420
tcpdump -i eth0 'tcp[(tcp[12]>>2):4] = 0x47455420'     

你可能感兴趣的:(Shell | 网络访问)