监听/连接工具¶
Knockd¶
原理¶
敲门(knock)指的是我们从自己的客户端设备(pc、笔记本或者手机)向服务器IP发送一系列实现约好的暗号,而服务器上需要相应的安装接收暗号的服务knockd,它在接收到正确的暗号的时候,会临时性的为敲门者开一段时间的门并随后关上(当然也能够配置成一直开着),我们要在这几秒钟里面登录成功并且保持连接,如果不小心断了连接就要重新敲门。
knock动作的实质就是连续的向指定的ip的约定的端口连续的发送多个tcp或者udp包,比如我们可以通过*telnet 服务器地址 端口号 命令来发送tcp包,也可以直接在浏览器地址栏里面用 *http://服务器地址:端口号 的方式来让浏览器发出与服务器指定端口tcp握手的SYN包。但是最好用的还是直接下载knock工具(windows版、mac版),用 knock 服务器地址 端口号 的方式来实现敲门
简历¶
如果说knock是敲门的来宾,knockd就是应门的门童。inux下的守护进程(Linux Daemon )常用XXXd来命名,比如apache的守护进程httpd,knockd就是knock的守护进程,所以服务器只有安装了knockd,才能正确的相应客户端的knock暗号。
Ftp¶
常用命令¶
*一、ftp*的get命令*和mget*命令有何不同?
**get**一次只下载一个文件;mget一次可以下载多个文件,而且支持通配符,需要注意的是在mget的时侯,需要对每一个文件都选择y/n,如果想不交互的下载全部的文件,可以先用prompt**命令**关掉交互方式(关闭:prompt off;打开:prompt on)。
*二、FTP*使用什么*命令*来定位服务器与本地硬盘的路径?
**ftp**中用lcd切换本地路径,用cd切换远程服务器的路径。常用到的**命令**如下:
- cd目录名(进入服务器目录) lcd目录名(进入本机目录)
- cd \(退到服务器根目录) lcd \(退到本机根目录)
- cd ..(退回到上一级目录) lcd ..(退回到上一级目录)
三、!命令有何作用?
执行本地shell**命令**
如:!dir(显示本机当前目录内容),如果不加!如:dir(显示服务器当前目录内容)
**四、ftp**命令支持含有空格的文件夹/文件名吗?
支持,只要在引用时加上双引号“”即可!
五、下面是命令行方式使用*FTP*的实战练习
假设有一**ftp**服务器:ftp.test.com,用户名:username,密码:user1234。在本地电脑D:盘创建一个文件夹“qint”。将要上传的文件复制到D:\qint里。通过**FTP**命令将文件从本地上传,从服务器下载的步骤如下:
1、“开始”→“运行”→输入“FTP”
2、open ftp.test.com
注意:这一步可以与第一步合并,在“运行”里直接输入:ftp ftp.test.com。如果你的**FTP**服务器不是用的21默认端口,假如端口是2121,那么此步的**命令**应在后面空格加2121,即“open ftp.test.com 2121
3、username
注意:提示你输入用户名
4、user1234
注意:提示你输入密码,密码不回显,打完密码后回车即可。如果你的密码输入错误,将不会提示你重新输入,这时你要键入“user”命令,将会出现第三步,你可以重新输入用户名和密码。
5、dir
注意:你成功登陆后就可以用dir查看**命令**查看**FTP**服务器中的文件及目录,用ls**命令**只可以查看文件。
6、mkdir qint
注意:在**FTP**服务器上根目录下建立qint目录
7、cd qint
注意:进入目录qint,用“cd 你的目录名”可以进入当前目录的下一级目录,这跟DOS一样。
8、bin
注意:采用二进制传输。如果你要上传下载,这一步很重要,不先执行这个**命令**,上传下载会很慢。大多数系统(包括UNIX系统)只有两种模式:文本模式和二进制模式。文本传输器使用ASCII字符,并由回车键和换行符分开,而二进制不用转换或格式化就可传字符,二进制模式比文本模式更快,并且可以传输所有ASCII值,所以系统管理员一般将**FTP**设置成二进制模式。一般来说,我们最好都用binary方式,这样可以保证不出错。
9、lcd d:\qint
注意:定位本地默认文件夹,在前面已事先在D:盘创建
10、!dir
注意:查看本地文件夹中的文件及目录
11、put i001.jpg
注意:将当前目录(d:\qint)中的文件i001.jpg上传到**FTP**服务器默认目录。可以用“mput .”将所有文件上传到**FTP**服务器上。
12、get d123.jpg
注意:将**FTP**服务器默认目录中的文件d123.jpg下载到当前目录下(d:\qint)。可以用“mget .”将所有文件下载到d:\qint
13、delete .
注意:删除服务器对应目录qint中的所有文件。
14、cd ..
注意:返回至上一级目录,即根目录。返回上一级目录用“cd ..”要注意,中间有空格。返回根目录用“cd \”。
15、mrdir qint
注意:删除目录qint。删除目录,在此目录下不能有文件及目录,不然将无法删除。
16、bye
注意:退出**FTP**服务器。
上传下载时特别要注意服务器及本地电脑的当前目录,文件是从哪里到哪里的问题。查看**FTP**服务器的当前目录**命令**为pwd,可以用cd**命令**定位服务器的目录。可以用lcd**命令**定位本地电脑的目录。
以上实例应用到了采用**FTP**命令**行方式上传下载的最常用**命令**,你还可以用**命令**“?”查看更多的**命令。
匿名登录¶
Tftp¶
Smbclient¶
介绍¶
smbclient是一个smb服务器的客户端的管理程序,可以交互式的访问samba服务器。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、SUSE、openSUSE。
选项¶
-? | --help
显示帮助文档
-V | --version
显示命令版本信息
-R | --name-resolve
将NetBIOS名称解析成对应的IP地址顺序
-M | --message
使用winpopup协议发送消息
-p | --port
指定连接端口,默认TCP的139
-m | --max-protocol
协议的最大版本
-I | --ip-address
指定连接的ip地址
-E | --stderr
将信息送到标准出错设备
-L | --list
显示服务器的资源列表
-b | --send-buffer
设置传输过程的缓冲区大小
-e | --encyrpt
要求服务器采用加密方式
-d | --debuglevel
设置调试模式级别,级别越高显示的日志就月详细
-l | ---log-basename
日志文件的存放目录
-N | --no-pass
不使用密码
-A | 从指定文件读取用户名和密码,文件格式如下:
username=<value>
password=<value>
domain=<value>
-U | --user=username[%password]
指定用户名和密码
-n | 指定NetBIOS名称
-W | --workgroup
指定用户的smb域
-T | --tar
将服务器共享的文件打包成tar格式
-s | 指定smb.conf目录
登录后常用命令¶
示例¶
[root@localhost ~]# cat wj.txt //查看文件内容
username=david
password=543092
[root@localhost ~]# smbclient //192.168.1.8/wj -A wj.txt //登录服务器,从指定文件读取用户名和密码
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-51.el6]
smb: \>
nc¶
NetCat,简称NC,也叫瑞士军刀,因其短小精悍、可靠,受许多黑客喜爱。
[v1.10-46]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [-options] [hostname] [port]
options:
-c shell commands as `-e'; use /bin/sh to exec [dangerous!!]
-e filename program to exec after connect [dangerous!!]
-b allow broadcasts
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h this cruft
-i secs delay interval for lines sent, ports scanned
-k set keepalive option on socket
-l listen mode, for inbound connects
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-q secs quit after EOF on stdin and delay of secs
-s addr local source address
-T tos set Type Of Service
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-C Send CRLF as line-ending
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive];
hyphens in port names must be backslash escaped (e.g. 'ftp\-data')
-h 帮助信息
-l 监听模式
-n 指定数字的IP地址,不会进行DNS解析
-p 指定监听的本地端口
-u UDP模式
-v 显示详细的信息
-i secs延迟时间
-w secs 超时时间
-z 表示扫描时不发送任何数据包
-q 限制会话的次数 (到达次数后自动关闭会话,用于证明数据传输完成)
传输文件¶
加密传输¶
入侵了一个Linux系统后查看敏感目录,然后把这些敏感的东西传到我自己的kali来,然后穷举哈希值破解密码,但是防火墙会检测你传的是什么,可能会被拦截,因此需要加密传输。下面演示的是Base64编码,实战中可以用一些密码学算法进行加密