现系统的学习一下Web渗透相关的命令
ping
ping 命令是用来测试TCP/IP 网络是否畅通或者测试网络连接速度的命令,对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping就是一个测试程序,如果ping运行正确,大体上就可以排除网络访问层、网卡、Modem的输入输出线路、电缆和路由器等存在的故障,从而缩小问题的范围。
ping命令的原理是根据计算机唯一标示的IP 地址,当用户给目的地址发送一个数据包时,对方就会返回一个同样大小的数据包,根据返回的数据包用户可以确定目的主机的存在,并初步判断目的主机的操作系统。
ping命令使用了ICMP报文,ICMP报文有很多的种类,其中ping使用的是回显请求和回显应答报文
下面的是请求报文的具体信息:
下面的是返回报文的具体信息:
telnet
telnet命令用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。
windows也有telnet协议,只不过,默认是关闭的,使用telnet探测虚拟机的22端口,会进入一个空白的画面。虽然不能控制虚拟机,但是可以说明22端口是可用的。如果端口不可用会提示链接失败。
telnet使用23端口
需要远程连接主机时,该主机需要开启telnet服务,才能被连接
具体使用,不再演示!
netstat
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况
用法:
netstat -a //列出所有端口 netstat -at //列出所有tcp端口 netstat -au //列出所有udp端口 netstat -l //只显示监听端口 netstat -lt //只列出所有监听 tcp 端口 netstat -lu //只列出所有监听 udp 端口
我最常用的是,用来查看所开启的端口/服务:
traceroute
traceroute命令用于追踪数据包在网络上传输时的全部路径,它默认发送的数据包大小是40字节。通过traceroute我们可以追踪本主机到目的主机的报文交换都经过了哪些路由器
当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。
一般服务器上是不安装的,需要yum install traceroute 安装后使用
主要流程:
1.构造一个UDP报文,TTL分别为1,当这个报文到达第一个路由器后,TTL减去1后为零,报文被丢弃,然后路由器发送ICMP报文(时间超过)给源主机。
2.构造UDP报文,TTL为2,同样的,第二个路由器会返回ICMP报文(时间超过)给源主机
(以此类推,注意发送过程中的UDP报文使用的端口都是非法端口,以使最后达到的时候无法交付,不然你就不知道什么时候应该停)…
3.直到TTL 到达某个值,而这个值可以使这个UDP报文刚好到达目的主机,由于报文的端口号不合法,目的主机返回ICMP(端口不可达)报文给源主机。
(上述过程中,路由器和目的主机返回的ICMP报文中均含有它们的地址,所以得到了路径。)
实际实现中,源主机每次发送三个相同TTL的UDP报文,因为现实中网络环境比较复杂,可能会有丢包情况发生。
从图中可以看出记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间。在后面一部分我们会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
nslookup
用于翻译域名对应的ip和DNS
服务器上一般没有,需要手动安装
1、找到提供nslookup命令的软件包
yum provides */nslookup
inux下提供nslookup命令的软件就是 bind-utils
2、安装
yum install -y bind-utils
比如查看百度的ip,其中Server表示当前的DNS:
tcpdump
抓包工具
实际上tcpdump命令是一个抓包命令,它能抓取传递到指定网卡的数据包,ftp协议及telnet协议是明文传递的,因此此抓包命令可以直接抓取明文的信息,所以使用telnet协议进行远程登陆是非常危险的。现在使用基于非对称加密的ssh协议比较安全,已取代了telnet协议。
参数介绍:
-i 指定网卡 -nn 键给数据包中的域名与服务转为ip和端口 -X 以十六进制和ASCII吗显示数据包内容 port 指定监听的端口 tcpdump -i ens33 -nn -X port 21 检查21端口的数据包
1、linux中ftp服务需要下载专门的vsftpd工具包
yum install vsftpd
2、开启ftp服务
systemctl start vsftpd
3、开始监听
tcpdump -i eth0 -nnX port 21
4、客户端访问
ftp 服务器ip
原因后面解决!
curl
curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;
curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传……
1、查看Http头
2、打印网站页面
3、将网站页面保存