网络攻防第八周作业
视频学习
嗅探欺骗与中间人攻击
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上,让sslrtip在8081端口监听,执行“sslstrip -l 8081
”
3.ettercap的准备:ettercap是一套用于中间人攻击的工具。配置文件是/etc/ettercap/etter.conf,首先要将ec_uid、ec_gid都变为0
然后找到linux分类下的if you use iptables的下面两行,将注释去掉,从而允许iptables转发
打开图形化界面, 选择嗅探网卡,ettercap -G
4.Ettercap使用,Hosts -> Scan for hosts找到网络上的主机
选择窗口中要作为攻击目标的IP地址(192.168.11.74),然后点击窗口底部的 Add to Target 1,然后把网关(192.168.11.1)安排到Target 2。选择 Mitm —> Arp poisoning —> Sniff remote connections。
目标主机上使用命令“arp -a”查看ARP地址表,选择 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
7.图片截获
利用Driftnet这款工具我们可以看到受害人在访问网站的图片。首先依然使用arpspoof启动arp欺骗,然后启动driftnet:“driftent -i”,此时弹出一个小窗口,当目标访问有图片的网站的时候,攻击者就能在这个小窗口看到。
8.DNS欺骗
利用Dsniff套装中的dnsspoof或者ettercap的dnsspoof插件,我们可以完成对受害者的dns欺骗。在开始欺骗前,首先我们要编辑一个自己的hosts文件,放在方便访问的地方。内容和本机自带的hosts内容差不多,只是把你想欺骗的域名和想要欺骗到哪里的地址写好(通常是攻击者指定的服务器,用来执行浏览器溢出或者java applet攻击,用来获取受害者的计算机访问权限)
host文件:127.0.0.1 www.baidu.com
上面是一个hosts文件示例,把百度定向到了本机。我们把它保存成hosts,位于/root目录下。然后启动dnsspoof:dnsspoof -i wlan0 -f /root/hosts,等受害者访问百度观察效果。
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后门
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
在酒店等公共场所,通常有wifi信号,但当访问第一个网站时,可能会弹出窗口,需要输入用户名密码,登陆后才可以继续上网。该技术一般为透明http代理,如果你没有账号就无法上网。但提供热点的ISP对热点的
DNS查询服务并不作限制,你会发现获取到的dns地址是有效的,并且可以进行dns查询,这时可以使用DNS tunnel技术来实现免费上网。DNS tunnel 即 DNS 通道,就是利用DNS查询过程建立起隧道以传输数据。
dns2tcp 是一个利用DNS隧道转发TCP连接的工具,支持KEY和TXT类型的请求,用C语言开发。它分为两个部分,服务端和客户端,编译完成后在服务端上的可执行文件名称为dns2tcpd,在客户端上的名称为
dns2tcpc。DNS tunnel实现的工具除了dns2tcp外,还有OzymanDNS、tcp-over-dns、heyoks、iodine。
3).Miredo
Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道转换,可以转换不支持IPV6的网络连接IPV6,内核中需要有IPV6和TUN隧道支持。
4).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。
5).Proxytunnel
Proxytunnel可以通过标准的Https代理来连接远程服务器,这是一个代理,实现了桥接的功能。特别用于通过SSH进行Http(s)传输。Prosytunnel可用于:
(1)使用http(s)代理(http connect 命令)创建通讯通道
(2)为OpwnSSH写一个客户端驱动,并创建基于SSH连接的http(s)代理
(3)作为一个独立的应用,可以连接到远程服务器
6).Ptunnel
在一些网络环境中,如果不经过认证,TCP和UDP数据包都会被拦截。但只要你能ping通远程计算机,就能通过这个ping发出的ICMP包建立ICMP隧道,将TCP数据通过该隧道发送,实现不受限的网络访问。Ptunnel
借助ICMP数据包建立隧道通信,用户需要在受限制网络外,预先启动Ptunnel建立代理服务器。再以客户端模式运行Ptunnel,就可以建立ICMP隧道。
7).pwnat
pwnat是一个NAT穿透工具,它可以使两台均在NAT或防火墙后的机器,不需要任何第三方服务器,不需要端口转发就能进行通信。该工具首先在公网计算机上建立一个服务端。然后,处于NAT后的其他计算机以客户
端模式运行,通过连接服务端,就可以互相访问了。
8).sslh
sslh是一个ssl/ssh端口复用工具,sslh可以在同一个端口上接受https,ssh和openvpn连接。这使得通过443端口连接ssh服务器或者openvpn服务器同时在该端口上提供https服务成为可能。sslh可以作为一个研究端口
复用的例子。
逆向工程工具
1).Edb-Debugger
EDB(Evan's Debugger)是一个基于Qt4开发的二进制调试工具,主要是为了跟OllyDbg工具看齐,通过插件体系可以进行功能的扩充,当前只支持Linux。可以将文件直接拖进来,或使用顶部的下拉菜单的File菜单,
然后选择open,将可执行文件加载到Edb-Debugger中进行调试。
2).Ollydbgs是经典的Ring3级调试器,是一个动态调试工具,将IDA与SoftICE结合起来的思想。在Kali下是Wine方式运行的Ollydbg。
3).jad是一个Java反编译工具
4).Radare2 是一款开放源代码的逆向工程平台,它可以反汇编、调试、分析和操作二进制文件。
5).APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。
6).Clang、Clang++:Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器。Clang++是clang的另一个升级版本,使用方法其实都是一样的。clang类似于gcc编译器,clang++类似于gc++编译器。
7).D2j-des2jar反汇编dex文件到jar文件。进而可以使用其他工具查看源代码。
8).Flasm:主要功能是用于直接修改swf文件里的脚本actionscript。swf转fla文件的软件不能确保100%还原,如果只是修改as脚本代码,flasm是最佳的选择,因为他只修改脚本,资源数据不做修改。
9).Javasnoop:一个java应用程序安全测试工具,允许你以拦截的方法,篡改数据和hack运行在你计算机上的java应用程序。通常在没有源代码的情况下,测试java客户端的安全性最好的结果是不可预知的,最坏的结果是不切实际的。