2017-2018-2 20179209《网络攻防》第八周作业
本周学习目标
- 掌握Linux系统架构
- 掌握Linux系统安全架构和机制
- 掌握Linux系统安全攻防技术
视频学习
SET工具
SET(Social Engineering Toolkit)是一个开源、python驱动的社会工程学渗透测试工具,提供了非常丰富的攻击向量库。是开源的社会工程学利用套件,通常结合metasploit来使用。
setoolkit
命令开启SET。
攻击模块:
- 鱼叉式钓鱼攻击
- 网站攻击
- 介质感染攻击
- 创建patload并监听
- 群发邮件攻击
- 基于arduino的攻击
- 短信欺骗攻击
- 无线接入点攻击
- 二维码攻击
- powershell攻击
- 第三方模块
钓鱼攻击
此攻击向量主要目的是为了发送存在恶意软件的钓鱼邮件。相应的payload可以选择不同的漏洞。
网站攻击框架
可以开放一个WEBServer服务,如果对方访问此页面,若系统存在漏洞触发条件,则会被植入后门。如Java Applet Attack方法就需要目标有Java运行环境。
介质感染攻击
借助Autorun.inf执行exploit得到一个返回的shell,结合metasploit创建后门。
创建payload和监听器
创建一个返回的Payload并开启监听,与metasploit给出的payload类似。
群发邮件攻击
可以把垃圾邮件或带有病毒的邮件发送到邮件列表。支持导入列表并向列表中的每个人发送邮件。
无限接入点攻击
无线接入点攻击会创建一个虚拟无线AP,通过接入点ap可以抓取所有连接的设备的流量。
二维码攻击
填入一个危险的URL,使得被攻击者扫描二维码自动访问页面中招。
powershell攻击
针对Vista以上的Powershell的攻击模块。
嗅探欺骗和中间人攻击实验
1 为kali设置开启端口转发
#### 2 设置ssltrip
``` iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8081 ```
``` sslstrip -l 8081 ```
#### 3 ettercap的准备
ettercap是一套用于中间人攻击的工具,和dsniff套件起名。它的强大之处在于支持插件和过滤脚本,直接将账号、密码显示出来,不用人工提取数据,如果是第一次进行中间人攻击操作,那么要对kali下的ettercap配置。
配置文件是/etc/ettercap/etter.conf,首先要将ec_uid、ec_gid都变为0.
然后找到linux分类下的if you use iptables这一行,将注释(“#”号)去掉,打开转发。
#### 4 Ettercap使用
打开ettercap,选择sniff选项->unified sniffing->选择网卡->host选项:先scan for hosts,等扫描完了选host lists。
### 权限维持之后门使用
权限维持包含tunnel工具集、web后门、系统后门三个子类。其中系统后门与WEB后门统称传统后门,都是为渗透测试后,为方便再次进入系统留下的恶意程序。
#### Veevely
veevely是一款使用python编写的webshell工具(集webshell生成和连接于一身,仅用于安全学习教学只用,进制非法用途),可以算作是linux下一款菜刀替代工具(限于php),在linux上使用时还是很给力的,就是某些模块在windows上无法使用。
``` veevely generate test ~/1.php ```
``` veevely url mima ```
#### webacoo
WeBaCoo(Web Backdoor Cookie)script-kit是一个小巧的、隐蔽的php后门,它提供了一个可以连接远程web服务器并执行php代码的终端。WeBaCoo使用HTTP相应传送命令结果,shell命令经base64编码后隐藏在Cookie头中。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204252170-1499384231.png)
#### dbd
可以理解为加强版的nc
监听端 ``` dbd -l -p 2333 -e /bin/bash -k password ```
连接端 ``` dbd ip port -k password ```
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204312951-1717802038.png)
#### sbd
与dbd使用方法类似
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204324223-1533394008.png)
#### U3-Pwn
与metasploit payload结合使用的工具。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204330196-631912471.png)
#### intersect
功能相当强大,自有添加组件。在目标主机上执行houmen.py -b,则生成一个bind shell 后门,如果之前设置好remote host和remote port,也可以设置为reverse shell。此时用攻击机连接后门端口就可以返回shell。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204346221-935410212.png)
### Cryptcat
Netcat大家都熟悉,有网络工具中的瑞士军刀之称,但是它本身建立的隧道是不加密的,所以有了cryptcat。与dbd与sbd使用类似。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204351702-1125364223.png)
### DNS2TCP
首先,要知道DNS系统的工作原理,见:【DNS系统的工作原理及攻击防护方法论】,你在做DNS查询的时候,如果查的域名在DNS古武器本机的cache中没有,它就回去互联网上查询,最终把结果返回给你。如果你再互联网上有台定制的服务器,只要依靠DNS的这层约定,就可以交换数据包了。从DNS协议上看,你是在一次次的查询某个特定域名,并得到解析结果。但实际上,你在和外部通讯。你没有直接到局域网的机器,因为网关不会转发你的IP包出去。但局域网上的DNS服务器帮你做了中转。这就是DNS Tunnel了。DNS tunnel实现的工具有很多,比如:0zymanDNS、tcp-over-dns 、heyoka、iodine、dns2tcp。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204401444-1262487696.png)
### Iodine
与DNS2TCP类似
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204422013-445804967.png)
### Miredo
Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道链接,可以转换不支持IPV6的网络连接IPV6,内核中需要有IPV6和TUN隧道支持。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204428124-1470460805.png)
### Proxychains
内网渗透测试经常会用到的一款工具,如我们使用Meterpreter开设一个Socks4a代理服务,通过修改/etc/proxychains.conf配置文件,加入代理,即可使其他工具如sqlmap、nmap直接使用代理扫描内网。
如proxychains nmap 10.0.0.1/24
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204440860-1286274672.png)
### Procytunnel
可通过标准的HTTPS代理来连接远程服务器,这是一个代理,实现了桥接的功能。特别用于通过SSH进行HTTP(s)传输。还可以使用http(s)代理创建通讯通道。为OpenSSH写一个客户端驱动,并创建基于SSH连接的hhtp(s)代理;作为一个独立的应用,可以连接到远程服务器。
### Ptunnel
借助ICMP数据包建立隧道通信的工具。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204451297-2016899688.png)
### pwnat
内网下通过UDP进行通信。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204457744-1780947955.png)
### Socat
可以在不同协议上进行数据的转发
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204506892-729337214.png)
### sslh
一个ssl/ssh端口复用工具,sslh可以在同一端口上接收https、ssh和openvpn连接,这使得通过443端口连接ssh服务器或者openvpn服务同时在该端口上提供https服务成为可能。sslh可以作为一个研究端口复用的例子。
![](https://images2018.cnblogs.com/blog/1249712/201804/1249712-20180429204515261-169943391.png)
## 教材学习
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与客户端进行交互。