20159319 《网络攻防实践》第八周学习总结
教材学习第八章内容总结
Linux操作系统结构包括Linux内核,一些GNU运行库和工具,命令行shell,图形化界面X窗口系统及相应桌面环境,其操作系统内核属于一种典型的宏结构。
Linux内核使用了虚拟文件管理VFS机制。 Linux的一个基本特点是抽象了设备的处理,所有的硬件设备都像常规文件一样看待。Linux支持三类硬件设备:字符设备,块设备和网络设备。 Linux用户信息保存在系统的/etc/passwd文件中,只对Root可读。 为了能够给不同的应用软件,网络服务提供统一的身份认证机制,Linux系统中提供了PAM(可插入身份认证模块)。PAM支持的四种管理界面为:认证管理,账号管理,密码管理,会话管理。 在Linux中,每个用户的专属初始目录的默认权限为rwx------,即只有所有者用户具有浏览,删除,修改和进入的权限,执行mkdir命令所创建的目录,其默认权限为rwxr-xr-x. 支持攻击者进行自动化的远程口令猜测工具很多,比较流行的有:Brutus(最快,最灵活的远程口令猜测破解工具)。THC Hydra(非常快速的网络身份认证口令猜测工具),Cain and Abel(黑界骑兵)。 LAMP是目前最为流行的web网站构建解决方案。 Linux系统通过简单的配置“ip_forward=1”就能够以路由器模式运行,Linux内核中由net子系统的route.c来主要实现路由器的寻址与数据包的转发功能。 wireshark与tshark使用dumpcap来进行网络流量监听,在那些需要特权才能捕获网络流量的平台上,只需要dumpcap设置为运行在特权用户账户下,而wireshark与tshark则无需特权就可以运行。 Linux系统上的用户账户分为Root,普通用户与系统用户三大类。攻击者在得到本地受限用户访问权之后,最简单的特权提升途径就是能够破解出Root用户的口令,然后执行su或sudo命令进行提升。第二种特权提升途径是发掘并利用su或sudo程序中的安全漏洞。 Linux系统的主要审计日志集中地/var/log目录下,主要由系统核心进程,syslogd与各个网络服务提供事件审计功能。 最常见的Linux系统后门是提供远程命令行shell的访问,通常是使用netcat等后门工具在系统上运行,开放监听一个TCP端口,在接收到请求之后返回一个LInux系统shell与客户端进行交互。kali视频学习
1.set
social engineering toolkit(SET)是一个开源,python驱动的社会工程学渗透测试工具,提供了非常丰富的攻击向量库。是开源的社会工程学利用套件,通常结合metasploit来使用。 命令行下输入setoolkit打开SET套件。有11个模块 下面是第一个模块的使用,发送存在恶意软件的钓鱼邮件,但是没有成功。 还实现了一个克隆了一个网站 2.嗅探欺骗与中间人攻击 主要介绍进行ARP欺骗,DNS欺骗和嗅探以及会话劫持的方法。 先为kali设置开启端口转发 echo 1 >/proc/sys/net/ipv4/ip_forward 再设置ssltrip,为了劫持ssl数据,需要使https数据变为http:iptables -t nat -A PREROUTING -p tcp --destination -port 80 -j REDIRECT --to-port 8081 ettercap的准备 ettercap是一套用于中间人攻击的工具。和dsniff套件齐名,它的强大之处在于支持插件和过滤脚本,直接将账号,密码显示出来,不用人工提取数据。如果是第一次进行中间人攻击操作,那么要对kali下的ettercap做点配置。 配置文件是/etc/ettercap/etter.conf.首先要将ec_uid , ec_gid都变为0 再把# if you use iptables下的两个#号去掉 然后打开ettercap Dsniff套装介绍 Dsniff套装主要是arpspoof和dsniff,前者用来进行arp欺骗,后者用于嗅探。进行攻击的步骤如下: 进行arp欺骗 arpspoof[-i interface(网卡)] [-c own|host|both(欺骗方式,通常是both)] [-t target(目标)] [-r] host(网关) 进行嗅探: dsinff [-cdmn] [-i interface | -p pcapfile] [-s snaplen] [-f service] [-t] 会话劫持 这里主要以cookies进行举例,说明会话劫持的用法 arpspoof -i wlan0 -t 192.168.1.1 192.168.1.112 捕获数据包: tcpdump -i wlan0 -w test.cap 等一段时间,估计目标会登录网站,开始处理捕获的数据包: ferret -r test.cap 如果捕获的包没问题,而且确定开启了端口转发,那么经过处理的数据包会自动生成hamster.txt 接下来运行hamster,选择目标和可能的登录认证地址,然后点击链接就可以了。 DNS欺骗 利用Dsniff套装中的dnsspoof或者ettercap的dnsspoof插件,我们可以完成对受害者的dns欺骗 在开始欺骗前,我们首先要编辑一个自己的hosts文件。 hosts文件:127.0.0.1 www.baidu.com 再启动dnsspoof:dnsspoof -i wlan0 -f /root/hosts URL监控 利用Dsniff套装中的urlsnarf工具,我们对tcp80,3128,8080端口的HTTP通信进行解析,并且可以将嗅探到的所有HTTP请求转存为通用日志格式CLF,这种格式是许多web服务器所使用的。 usage:urlsnarf[-n] [-i|-p][[-v] pattern [expression]] 3.权限维持工具集 weevely(web后门工具):是一款使用python编写的webshell工具 在此主机上生成一个web后门,获得一个webshell WeBaCoo(Web Backdoor Cookie) script-kit是一个小巧的,隐蔽的php后门,它提供了一个可以连接远程web服务器并执行php代码的终端。WeBacoo使用HTTP响应头传送命令结果,shell命令经base64编码隐藏在Cookie头中。 生成一个webshell 上传到网站后,使用webacoo连接webacoo -t -u http://192.168.1.112/backdoor.php
Cymothoa(系统后门) 枚举/bin/bash进程pidcymothoa -p 10500 -s 0 -y 2333
(注入2333端口),如果成功。可以连接2333端口返回一个shell. Dbd:可以理解为加密版的nc 监听端:dbd -1 -p 2333 -e/bin/bash -k password 连接端: dbd 127.0.0.1 2333 -k password Intersect:系统后门,功能比较强大 在目标机上执行shell.py -b, 则生成一个bind shell后门,如果之前设置好remote host 和remote port,也可以设置好reverse shell. 此时连接后门端口成功,返回shell. 3.kali下权限维持工具中Tunnel工具的使用 权限维持包含Tunnel工具集,web后门,系统后门三个子类。Tunnel工具集包含了一系列用于建立通信隧道,代理的工具。 CryptCat Netcat有网络工具中的瑞士军刀之称,但是它本身建立的隧道是不加密的,所以就有了cryptcat,与dbd与sbd使用也类似。 DNS2TCP DNS tunnel即DNS隧道。从名字上来看就是利用DNS查询过程建立起隧道,传输数据。 为什么使用DNS tunnel? 当你在酒店,机场等公共场所,通常有wifi信号,但是当你访问一个网站时,可能会弹出个窗口,让你输入用户名,密码,登录之后才可以继续上网(该技术一般为透明http代理。这时,如果没有账号,就没法上网。但是有时你会发现,你获取到的DNS地址是有效的,并且可以用以进行DNS查询,这时你便可以用DNS tunnel 技术来实现免费上网)。 DNS tunnel的原理 首先,要知道DNS系统的工作原理。你在做DNS查询的时候,如果查的域名在DNS服务器本机的cache中没有,它就会去互联网上查询,最终把结果返回给你,如果你在互联网上有台定制的服务器,只要依靠DNS的这层 约定,就可以交换数据包了。从DNS协议上看,你是在一次次的查询某个特定域名,并得到解析结果。但是实际上,你在和外部通信。你没有直接连到局域网外的机器,因为网关不会转发你的IP包出去,但局域网上的DNS服务器帮你做了中转。这就是DNS Tunnel了。 Miredo Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道链接,可以转换不支持IPV6的网络工具IPV6,内核中需要有IPV6和TUN隧道支持。 Proxychains 内网渗透测试经常会用到的一款工具,如我们使用Meterpreter开设一个Socks4a代理服务,通过修改/etc/proxychains.conf配置文件,加入代理,即可使其他工具如sqlmap,namp直接使用代理扫描内网。 如:proxychains namp 10.0.0.1/24 Proxytunnel Proxytunnel可通过标准的HTTPS代理来连接远程服务器,这是一个代理,实现了桥接的功能,特别用于通过SSH进行HTTP(S)传输。 Proxytunnel可用于: 使用HTTP(S)代理(HTTP CONNECT命令)创建通信通道 为OpenSSH写一个客户端驱动,并创建基于SSH连接的HTTP(S)代理 作为一个独立的应用,可以连接到远程服务器 Ptunnel 借助ICMP数据包建立隧道通信 Pwnat 内网下通过UDP通信 Socat 可以在不同协议上进行转发数据 sslh 一个ssl/ssh端口复用工具,sslh可以在同一个端口上接受HTTPS,SSH和Open VPN连接。这使得通过443端口连接SSH服务器或者openVPN 服务同时在该端口上提供HTTPS服务成为可能。sslh可以作为一个研究端口复用的例子。 4.kali逆向工程工具 kali下的逆向工程工具包括调试器,反编译工具与其他逆向工具集。 1.Edb-Debugger EDB是一个基于Qt4开发的二进制调试工具,主要是为了跟ollyDbg工具看齐,通过插件体系可进行功能的扩充,目前只支持Linux。 ollydbg 经典的Ring3级调试器,是一个动态调试工具,将IDA与SoftICE结合起来的思想。在kali下是wine方式运行的ollydbg. Jad是一个Java反编译工具。 Radare2 radare2 是一款开放源代码的逆向工程平台,它可以反汇编,调试,分析和操作二进制文件。 Apktool APKTool是GOOGLE提供的APK编译工具。能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架。 Clang,Clang++ Clang是一个C语言,C++,Objective C,Objective C++语言的轻量级编译器。 D2j-dex2jar 反编译dex文件到jar文件,进而可以用其他工具查看源代码。 Flasm flasm主要功能是用于直接修改swf文件里的脚本actionscript. swf转fla文件的软件不能确保100%还原,如果只是修改as脚本代码,flasm是最佳的选择,因为他只是修改脚本,资源数据不做修改。目前flasm支持破解flash8和低于flash8格式的swf文件。 Javasnoop 这是一个java应用程序安全测试工具,它允许你以拦截的方法,篡改数据和hack运行在你计算机上的java应用程序。