2017-2018-2 20179202《网络攻防技术》第八周作业

嗅探欺骗与中间人攻击

1.输入命令echo 1 > /proc/sys/net/ipv4/ip_forward,为Kali设置开启端口转发

2.设置ssltrip

执行命令iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8081,将所有的80请求转发到了8081上。

3.ettercap的准备

配置文件是/etc/ettercap/etter.conf,首先要将ec_uid、ec_gid都变为0。

然后找到linux分类下的if you use iptables的下面两行,将注释去掉,从而允许iptables转发。

ettercap -G 打开图形化界面。点击Sniff->Unified sniffing 。

4.Ettercap使用

Hosts -> Scan for hosts找到网络上的主机。

选择窗口中要作为攻击目标的IP地址,然后点击窗口底部的 Add to Target 1,然后把网关安排到Target 2。选择 Mitm —> Arp poisoning —> Sniff remote connections。

目标主机上使用命令arp -a查看ARP地址表,下图左右两边分别是欺骗前后的相关信息,可以看到实施ARP欺骗后,目标主机ARP地址表192.168.199.1对应的MAC地址已经变成192.168.199.162的MAC地址。

选择 Start —> Start sniffing 开始监听,这时目标主机的所有流量都是通过攻击者的主机出去的。当处于同一个局域网的受害者访问网页进行登陆时,密码就可以被记录下来。

5.Dsniff套装介绍

Dsniff套装主要是arpspoof和dsniff,前者用来进行arp欺骗,后者用于嗅探。
`

-c:打开半双工TCP流,允许在使用arpspoof时进行正确的嗅探操作
-d:启动调试模式
-f:以/etc/service格式从文件中加载触发器(也就是口令嗅探的服务类型)
-I:使用特定的网络接口
-m:使用dsniff.magic文件通过在magic文件中定义的特征尝试自动判断协议
-n:不执行主机查找
-r:从前面保存的会话中读取被嗅探的数据
-s:最多对报文的前个字节进行嗅探,如果用户名和口令信息包含在随后的默认1024字节界限中
-t:使用格式port/proto=servise;来加载一个以逗号界定的触发器集;

6.会话劫持

这里主要以cookies进行举例,说明会话劫持的用法。

arpspoof -i wlan0 -t 192.168.1.1 192.168.1.102
捕获数据报:
tcpdump -i wlan -w test.cap
等一段时间,估计目标会登录网站了,我们开始处理捕获的数据包:
forret -r test.cap
如果捕获的数据包没什么问题,而且确定开启了端口转发,那么经过处理的数据包会自动生成hamster.txt。接下来运行hamster,hamster会提示浏览器设置代理为http://127.0.0.1:1234,接着在浏览器中代开hamster:http://hamster选择目标和可能的登录认证地址,然后点击链接会发现劫持成功。

7.图片截获

利用Driftnet这款工具我们可以看到受害人在访问网站的图片。
首先依然使用arpspoof启动arp欺骗,然后启动driftnet:
driftent -i
此时弹出一个小窗口,当目标访问有图片的网站的时候,攻击者就能在这个小窗口看到。

8.DNS欺骗

利用Dsniff套装中的dnsspoof或者ettercap的dnsspoof插件,我们可以完成对受害者的dns欺骗。

9.URL监控

利用Dsniff套装中的urlsnarf工具,我们对TCP80、3128、8080端口的HTTP通信进行解析,并且可以将嗅探到的所有HTTP请求转存为通用日志格式(Common Log Format,CLF),这种格式是许多Web服务器所使用的,例如IIS和Apache,事后可以很方便的使用一些日志分析工具来分析记录结果。
Usage:urlsnarf [-n] [-i interface | -p pcapfile] [[-v] pattern [expression]]

10.下载软件监控

利用Dsniff套装中的filesnarf工具,我们可以从嗅探到的NFS通信中,选定某个文件,转存到本地当前工作目录。
Ussage:filesnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]

权限维持

1.WEB后门

(1)Weevely

Weevely是一款使用python编写的webshell工具,集webshell生成和连接于一身,生成后门的代码是经过base64编码的,后门中所使用的函数都是常用的字符串处理函数,被作为检查规则的eval、system等函数都不会直接出现在代码中,从而可以致使后门文件绕过后门查找工具的检查,隐蔽性较好,可以算作是linux下的一款菜刀替代工具(限于php),某些模块在windows上无法使用。

通过命令weevely generate test ~/1.php ,生成一个名字为1.php,密码为test的后门。

将1.php拷贝到靶机192.168.199.139 /var/www/路径下,即将后门上传到web。

输入命令weevely http://192.168.199.139/1.php test,用weevely连接后门(连接后为设置的密码),即可获得一个webshell,然后就可以随意使用终端了。

WeBaCoo(Web Backdoor Cookie)script-kit 是一个小巧的、隐蔽的php后门,它提供了一个可以连接远程web服务器并执行php代码的终端。WebaCoo使用HTTP响应头传送命令结果,shell命令经base64编码后隐藏在Cookie中,即其通信内容均通过cookie头传输。

webacoo -g -o wbc.php

将2.php文件拷贝到靶机192.168.199.139的 Web 根目录(/var/www/)下,输入命令webacoo -t -u http://192.168.199.139/2.php

2、系统后门

(1)Cymothoa系统后门

Cymothoa是一款可以将 shellcode 注入到现有进程的后门工具。它所注入的后门程序应当能够与被注入的进程共存,获取和原进程相同的权限。

(2)Dbd

Dbd 可以理解为加密版的 Netcat(或者叫 nc),仅仅只支持 TCP/IP 连接。Sbd与Dbd非常相似,也是 Netcat 的克隆,使用 AES-CBC-128 和 HMAC-SHA1 加密。

(3)U3-Pwn
与Metasploit Payload结合使用的工具,菜单可以单刀多针对移动光驱设备如光驱镜像,u盘等。

(4)Intersect

输入2列出可以使用的模块

输入1创建后门脚本,自由添加功能组件(输入需要的模块名即可加入该模块,这里我们以bshell模块为例)后,:creat生成一个shell。接下来设置Intersect脚本名、temp directory(临时文件地址)、enable logging、bind port、remote host)、remote port)、proxy port 、xor cipher key。这样会在/usr/share/intersect/Scripts/路径下生成shell.py。

将shell.py拷贝到当前目录,终端模拟目标主机执行 ./shell.py -b,生成一个bind shell后门。再打开一终端模拟攻击者执行nc -nvv 127.0.0.1 5555,得到一个很完美的shell。

3.Tunnel工具集

Tunnel工具集包含了一系列用于建立通信隧道、代理的工具:

1、CryptCat

Cryptcat是Netcat的加密版本,与Dbd、Sbd使用类似。Cryptcat支持TCP、UDP两种网络协议,它可以在两个计算机之间建立指定的连接,并使用特定的密钥对传输数据进行加密。为了提高加密,该工具允许用户在每次连接使用自定义的密钥,从而保证数据的安全性。

2、DNS2TCP

dns2tcp 是一个利用DNS隧道转发TCP连接的工具,支持KEY和TXT类型的请求,用C语言开发。它分为两个部分,服务端和客户端,编译完成后在服务端上的可执行文件名称为dns2tcpd,在客户端上的名称为dns2tcpc。DNS tunnel实现的工具除了dns2tcp外,还有OzymanDNS、tcp-over-dns、heyoks、iodine。

4、Miredo

Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道转换,可以转换不支持IPV6的网络连接IPV6,内核中需要有IPV6和TUN隧道支持。

5、Proxychains

Proxychains 是内网渗透测试经常会用到一款代理工具,能够强制使任何应用的TCP连接使用SOCKS4,SOCKS或者HTTP(S)代理进行连接。

ProxyChains 的配置文件位于/etc/proxychains.conf ,打开配置文件后在末尾添加代理IP和端口,可以任意添加代理,一行一个记录。如我们使用Meterpreter开设一个Socks4a代理服务,通过修改为socks4 127.0.0.1 8080加入代理,即可使其他工具如sqlmap、namp直接使用代理扫描内网。使用方式非常简单,直接在应用程序前加上 proxychains 即可,如proxychain namp -sT -Pn 10.0.0.1/24。因为 proxychains 只会代理 TCP 连接,而 ping 使用的是 ICMP,所以必须使用-Pn。

6、Proxytunnel

Proxytunnel可以通过标准的Https代理来连接远程服务器,这是一个代理,实现了桥接的功能。特别用于通过SSH进行Http(s)传输。Prosytunnel可用于:

  • 使用http(s)代理(http connect 命令)创建通讯通道
  • 为OpwnSSH写一个客户端驱动,并创建基于SSH连接的http(s)代理
  • 作为一个独立的应用,可以连接到远程服务器

7、Ptunnel

在一些网络环境中,如果不经过认证,TCP和UDP数据包都会被拦截。但只要你能ping通远程计算机,就能通过这个ping发出的ICMP包建立ICMP隧道,将TCP数据通过该隧道发送,实现不受限的网络访问。Ptunnel借助ICMP数据包建立隧道通信,用户需要在受限制网络外,预先启动Ptunnel建立代理服务器。再以客户端模式运行Ptunnel,就可以建立ICMP隧道。

8.pwnat

pwnat是一个NAT穿透工具,它可以使两台均在NAT或防火墙后的机器,不需要任何第三方服务器,不需要端口转发就能进行通信。该工具首先在公网计算机上建立一个服务端。然后,处于NAT后的其他计算机以客户端模式运行,通过连接服务端,就可以互相访问了。

9、sslh

sslh是一个ssl/ssh端口复用工具,sslh可以在同一个端口上接受https,ssh和openvpn连接。这使得通过443端口连接ssh服务器或者openvpn服务器同时在该端口上提供https服务成为可能。sslh可以作为一个研究端口复用的例子。

Kali逆向工程工具

1、Edb-Debugger

EDB(Evan's Debugger)是一个基于Qt4开发的二进制调试工具,主要是为了跟OllyDbg工具看齐,通过插件体系可以进行功能的扩充,当前只支持Linux。

2、Ollydbgs是经典的Ring3级调试器,是一个动态调试工具,将IDA与SoftICE结合起来的思想。在Kali下是Wine方式运行的Ollydbg。

3、jad是一个Java反编译工具

4、Radare2 是一款开放源代码的逆向工程平台,它可以反汇编、调试、分析和操作二进制文件。

6、APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。

7、Clang、Clang++

Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器。Clang++是clang的另一个升级版本,使用方法其实都是一样的。clang类似于gcc编译器,clang++类似于gc++编译器。
8、D2j-des2jar反汇编dex文件到jar文件。进而可以使用其他工具查看源代码。

9、Flasm

主要功能是用于直接修改swf文件里的脚本actionscript。
swf转fla文件的软件不能确保100%还原,如果只是修改as脚本代码,flasm是最佳的选择,因为他只修改脚本,资源数据不做修改。

(10)Javasnoop

一个java应用程序安全测试工具,允许你以拦截的方法,篡改数据和hack运行在你计算机上的java应用程序。通常在没有源代码的情况下,测试java客户端的安全性最好的结果是不可预知的,最坏的结果是不切实际的。

posted @ 2018-04-29 20:48  20179202杨晓桐  阅读(516)  评论(0编辑  收藏  举报