首页 资讯 查看内容

项目10:Stapler-1

2023-08-08 21:10:05

来源: 哔哩哔哩

##Nmap信息收集

---靶机IP:

---全端口扫描,这里发现端口开放的挺多的(但是一些端口是关闭了)


(资料图片)

---这里Ftp存在20和21两个端口端口21主要用于传输控制信息,用于接收和传送FTP指令

---端口20主要用于传输数据,包括数据的上传和下载。

----在使用FTP传输数据时,客户端会首先使用21端口进行用户认证

----认证通过后,服务器会开启一个20的端口进行数据传输

---这里FTP存在匿名登陆

---SSH端口支持RSA、ECDSA和ED25519三种类型的密钥

---域名系统(英文:Domain Name System,缩写:DNS)主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送

---dns-nsid:支持DNS服务器信息传输协议,可以用于获取DNS服务器的软件版本等信息。

---: :DNS服务器软件的详细版本信息,即dnsmasq版本

---dnsmasq是轻量级的DNS转发器和DHCP服务器,常用于家用路由器和小型网络环境中

---这里80/12380可能是Web页面

---3306是MySQL的远程登陆端口,可能使用MSF进行MYSql提权

---Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务

---NetBIOS协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能

---NetBIOS可以使用的四种类型的SMB(赋予Windows计算机本地文件重定向功能以便进入远端文件系统)

命令:话路控制命令,用于建立或终止与远程计算机上某个资源的逻辑连接

文件命令:用于远程文件访问

打印机命令:用于传送数据给一个远程打印队列,同时也检查该打印队列中各项任务的执行状态

消息命令:用于实现计算机之间的消息传送

---如果是Windows环境下,smb可能存在永恒之蓝漏洞(445端口)

---666端口,下面因该是一个jpg的图片(可以访问枚举)

---操作系统是Linux系统

---SMB是一种用于文件和打印共享的网络通信协议,通常用于Windows系统

---smb-os-discovery:表示靶机操作系统是Windows ,但实际上是Samba

---Samba是兼容Windows网络协议的开源实现,允许Linux与Windows之间共享文件和打印等

---smb2-security-mode:显示了SMBv2协议的安全模式信息。

---Message signing enabled but not required:表示SMBv2消息签名已启用,但不是必需的。消息签名是一种加密措施,用于防止SMB通信被中间人攻击和篡改

---Computer name: red:表示主机的计算机名称是"red"

NetBIOS name: RED:表示NetBIOS名称是"RED"。

NetBIOS user: <unknown>:未知的NetBIOS用户

##FTP匿名登陆

---查看内容收集到2个用户名(可以确定是Ftp账号):Elly  John

---提示ftp里面还有信息,但是没有密码,先尝试Web页面枚举信息

##Web页面访问

---首页和前端源代码都没有发现信息

---dirb爆破敏感文件和目录,发现2个文件

---wget下载下来看看,隐藏文件需要使用ls -a

---查看cat .bashrc(这是一个Linux系统用户的 .bashrc文件,它是在用户登录到系统后,每次打开一个非登录的交互式shell(例如打开一个终端)时自动执行的脚本。该文件包含了一些配置和别名,用于个性化用户的shell环境)

---可以理解成环境变量的配置信息(bash),没有什么特别的内容

---查看.profile

---这个文件主要用于设置umask、加载用户的 .bashrc文件以及将用户的 ~/bin目录添加到环境变量 PATH中,以提供更好的用户体验和方便性

---总的来说,这两个没有什么有用的信息

##666端口的DNS协议(可能存在一张jpg图片)

---nc访问666端口(这里是TCP协议,所以只能nc访问),发现是一个zip文件

---至少需要版本才能解压

---查看unzip的版本发现是,解压发现是一张jpg的图片

---图片内容,看到了分段错误,可能会有缓冲区溢出

---binwalk和exiftool分析图片(没有什么有用的信息)

---信息1:如果你正在读这篇文章,你应该得到一个Cookie

---信息2:IPTCDigest不是最新版本。XMP可能不同步

##Mysql的3306端口尝试

---这里提示密码错误,但是因该可以使用root进行远程登陆

##12380的Web页面信息收集

---访问页面,没有什么有用的信息

---查看前端源代码,收集到用户名:Zoe ,加上之前的Elly  John

---复制到文件,进行base64解码发现是jpeg图片

---浏览器打开是这样,没有什么有用信息

------使用binwalk\exiftool\strings解析均没有获取什么信息

---dirb进行扫描,什么也没有扫描到

##漏洞扫描

---AWVS进行漏洞扫描/什么都没有扫描到

---采用xray webscan --url / --html-output

---这也没有发现什么有用的东西

#使用nikto进行扫描

---Nikto是一个基于Web的漏洞扫描器,用perl语言编写的开源软件,目标是进行漏洞扫描

---去寻找已知有名的漏洞,能在230多种服务器上扫描出2600多种有潜在危险的文件、CGI 及其他问题,它可以扫描指定主机的 WEB 类型、主机名、特定目录、COOKIE、特定 CGI 漏洞、返回主机允许的 http 模式等

---扫描网站,但是我这里什么也没有扫描除了(可能是我的nikto版本太高了)

---在网上找了一张别人的版本的nikto

--看到这里有SSL,说明是SSL访问,也就是HTTPS,http访问其他的页面会重定向

---访问告诉我们这里有一个xss漏洞

---这里是一个WordPress页面的网站,以及之前的用户名:john

---思路扫描 扫描 扫描

---这里是一个PHPmyadmin的界面,root/root登陆不了

---思路/BurpSuite爆破 2.特殊目录识别PHPmyadmin版本尝试万能密码绕过

---采用dirb再次爆破/blogblog/

#WordPress漏洞扫描

----AWVS扫描发现多个漏洞,结合之前信息可以看出WordPress是版本

---使用Xray扫描没有发现漏洞,看来Xray不适合扫国外的

---使用wpscan漏洞扫描

---wpscan常用主要选项

---其它选项

-----disable-tls-checks  ---因为会受到SSL对等证书/SSH错误临时用法

---因为这里是Https协议,所以要加disable-tls-checks绕过

---发现存在一些SQL注入、文件上传、XSS、CSSRF等漏洞

---使用--enumerate 枚举用户名,u  枚举用户名,默认从1-10

–disable-tls-checks #禁用SSL/TLS证书验证

---这里发现了文件上传目录和用户登陆目录

---/blogblog/

---/blogblog/wp-content/uploads/

---发现这里存在一些用户名,

---访问upload目录发现存在文件上传

---在插件目录下,advanced_video_文件存在漏洞

---注意:WordPress的漏洞主要源于插件

---也可以使用wpscan的--plugins-detection主动扫描存在哪些插件

---这里存在目录泄露漏洞,所以可以不用扫描插件,如果不存在则需要wpscan扫描插件

---插件越老越容易出现漏洞

---先查看查看的readme,发现版本是

---在谷歌搜索,发现EDB-ID:39646

---searchexploit,发现插件存在文件包含漏洞

---查看exp(注意:这段代码是Python 2 的代码urllib2是用于处理URL请求的模块。在 Python 3 中,urllib2被拆分成了 等模块)

---file_get_contents是一个在PHP中用于读取文件内容的函数。它的作用是将一个文件的内容读取为一个字符串并返回

---这里$image_data = file_get_contents($thumb);就会读取传参的内容(构造恶意路径)

---PHP文件包含的函数

---由于这里是HTTPS协议,所以exp里面需要添加

ssl._create_default_https_context: 用于创建一个默认的 HTTPS 上下文(SSLContext)对象。在Python 3 中,使用。发起 HTTPS 请求时,会默认使用这个上下文对象来建立安全连接。这个上下文对象会验证服务器的证书,如果服务器的证书无效或有问题,连接将会被拒绝

ssl._create_unverified_context: 用于创建一个不验证服务器证书的 HTTPS 上下文(SSLContext)对象。在某些情况下,你可能会遇到服务器的 SSL 证书无法被正常验证的情况,例如自签名证书或者证书链上的某个证书未被信任

---构建exp如下:

---python2执行exp

---发现在upload目录下生成一张图片

---说实话这里我也不知到为什么会在这里生成一张图片

---去exploit-db上查看下源码(/inc/classes/) Line 57:-——Line 78)

---这里会将thumb的内容获取,然后写入jepg的图片内

---将图片下载下来,--no-check-certificate  忽略证书

---file检验文件,获取到数据库的用户名root和密码plbkac

---这里还可以利用文件包含,读取/etc/passwd和/etc/shadow

---访问/blogblog/

---思路 1.弱口令或者密码爆破  的strcmp绕过  注入

---弱口令admin不能登陆,爆破可以使用之前收集的用户名使用hydra和Burp爆破

---但是这里是WordPress后台登陆,可以使用wpscan爆破密码

---使用wpscan爆破用户密码(-P指定爆破的字典)

---这里爆破出来4个用户名和密码

---但是我们之前获取到了数据库的密码(root/plbkac

---而且3306端口开放,可以先登陆数据库查看(-h远程登陆)

---这里发现一些用户名和密码

---我们需要将使用awk命令拆分信息

---复制粘贴到,通过awk筛选

---NR > 2确保只从第三行开始打印数据,以避免打印表格的标题行

---而 length($3) > 10则检查第三个字段的字符串长度是否大于10,去除空格行

---效果如下

---同样的将用户名写入:

---hash-identifier识别数据库加密,发现是MD5加密

---采用john去爆破(注意:不要有空格)

---爆破出来一些密码,挨个尝试

---发现:john incorrect可以成功登陆

---当然,也可以在~/.john的查看爆破的历史记录

---密码登陆后,点击插件>添加新插件>上传插件

---发现这里支持ZIP格式的文件上传

##PHP文件上传的五种方法

---    

---/meterpreter_reverse_tcp    INTO OUT文件上传

---其它:菜刀、冰蝎、蚁剑、哥斯拉

#方法1:

---修改反弹shell的IP地址

---上传PHP文件成功,但是这里目录因该是在之前插曲目录

---emmm这里一点文件上传的检验都没有

---直接访问,反弹shell成功,发现是python2的WebShell

#方法2:weevely

---weevely创建一个密码为passdayu,名为的shell

---将上传

---采用weevely连接:weevely URL 密码(确实好用,但是只支持PHP)

---相对于的好处是,weevely的代码经过混淆

---但是只混淆了传参的变量,没有混淆函数名,很容易能够被黑名单检测出来

#方法2:webacoo

---:-g 生成后门代码(需要-o);-o OUTPUT 生成的后门输出文件名

---这里还是混淆的变量传参,容易被检测

---webacoo连接后门:-t 建立远程“终端”连接(需要-u);-u URL 后门 URL

---没有成功,emmmm真垃圾

##方法3:php/meterpreter_reverse_tcp

---p指定payload,-f生成类型:RAW是未经处理、也未经压缩的格式

---这个后门和其它一句话不同的是,这是争对MSF框架的

---msfconsole进行监听利用

---比起普通的一句话,优点是可以使用MSF的强大模块

#方法5:mysql INTO OUT文件上传     INTO OUT(写)

---远程登陆靶机Mysql,发现是否具有文件导入和导出权限

---secure_file_priv用来限制load dumpfile、into outfile、load_file()函数在哪个目录下拥有上传和读取文件的权限

---secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出---secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下---secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

----当然,这里也可以使用UDF进行提权(MSF直接提权)

---使用 into outfile将PHP的一句话写入Upload目录

---注意:shell_exec是系统命令执行函数(也可以使用反引号)

---然后在upload目录访问,并且通过GET传参进行系统命令执行

---系统执行Python的一句话反弹shell到Kail(GET传参)

---在Kail监听端口,接受到反弹shell

---并且使用python的pty和bash的stty进行SHEll切换

##提权信息收集

---uname/lsb_release -a进行内核/发行版本信息收集

---上传脚本进行分析,这里存在系统版本漏洞

---这里发现peter用户存在Sudo的提权(可以拿之前的密码进行SSH爆破)

---这里SSH允许空密码(可以结合peter用户提权)

---这里的脚本具有写权限(环境变量)

---这里是SUID可能出现的漏洞(find/cp/vim之外的)

#总结

---1)Linux version

---2)存在一些账户信息:peter存在sudo提权

---3)ssh:PermitEmptyPasswords yes(允许空密码登陆)

---4) path可写入:/usr/local/sbin/

#内核系统漏洞提权

----根据内核信息:searchsploit Linux Kernel

---根据版本信息和内核信息一起

---注意区分是32位系统还是64位系统

---也可以使用谷歌搜索最方便

---linux/local/可以利用,但是exploit-db里面是txt格式

---直接去github:/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/(但是已经找不到了404)

---当然也可以使用,直接通杀

#SSH登陆内核提权

---进入/home目录,使用grep -rn "ssh"递归搜索包含ssh的文件

---这里分别获取到peter/JZQuyIN5和JKanode/thisimypassword

---这个文件因该是JKanode用户的bash的历史记录

---直接使用ssh peter@进行登陆

---但是这里是ZSH的shell,可以在ssh登陆的时候,命令执行切换bash

#计划任务写入提权

---查找计划任务

---我这里2>/dev/null失效(因该是环境变量)

---在cat /etc//logrotate里面,存在每5分钟执行一次的脚本

---计划任务的路径:crontab -l(当前用户的计划,没有什么用)

----/var/spool/cron/用户名(存在各个用户的计划任务,但是查看不了)

---/etc/目录下的文件

---名为/var/log/cronlog文件

---这里每五分钟以root执行一次:/usr/local/sbin/

---可以看到文件,其它用户也具有写权限

---插入代码

---将/bin/bash复制到/tmp目录,赋予SUID权限

---将 /tmp/exploit的所有者更改为 root,所属组也更改为 root

---发现写入,但是执行后没有提权成功

---这里需要写入dash,然后在/tmp使用dash -p直接进入root(但是我失败了)

##smbd拿Shell

---nmap全端口扫描,发现139端口开放是smbd协议(局域网文件传输)

---Samba使Linux系统充当文件服务器,以与Windows客户端共享文件和资源:

文件共享: Samba允许将Linux文件系统上的文件和目录共享给Windows客户端,就像在Windows文件共享中一样。这使得用户能够通过网络访问和编辑位于Linux服务器上的文件。

打印共享: Samba还支持在Linux服务器上共享打印机,使Windows客户端能够通过网络连接和打印到这些共享的打印机。

用户身份验证: Samba允许在Linux系统上验证Windows用户,这意味着用户可以使用其Windows凭据登录Linux共享

域控制器:Samba还可以充当Windows域控制器的角色,使得Linux系统能够在Windows域中提供用户身份验证、组策略等功能

---NetBIOS(Network Basic Input/Output System)是一种早期的计算机网络通信协议,用于在局域网(LAN)中进行数据交换,后来被微软采纳并集成到Windows操作系统中

命名服务: NetBIOS允许计算机在网络上使用16个字符的名称进行标识。这些名称用于识别计算机、打印机和共享资源。每个计算机可以有一个主机名和若干服务名。

会话服务: NetBIOS会话服务允许计算机

数据报服务: NetBIOS数据报服务允许计算机通过数据报(独立的消息块)进行通信。这种通信方式类似于UDP协

名称解析: NetBIOS使用名称解析来将人类可读的计算机名映射到网络上的IP地址。这有助于实现

---然而,随着网络技术的发展,NetBIOS已经逐渐被更现代的协议和技术所取代,如TCP/IP、DNS(Domain Name System)和Active Directory

---NetBIOS协议存在一些安全漏洞,因此在更安全的网络环境中,通常会采用更安全和更现代的通信方式

---使用Enum4linux信息收集:139的Samba信息

---(用于枚举来自Windows和Samba系统的信息的工具)

---这里发现一些文件,有2个目录可以进去:

---kathy和tmp两个信息非常活跃!可以用smbclient连接!

---这里收集到一些用户信息

---复制粘贴到,采用cut命令拆分

---cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出

-d:分隔符,按照指定分隔符分割列。与 -f 一起使用

-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思(列号,提取第几列)

-c:以字符 (characters) 的单位取出固定字符区间

-b:以字节为单位进行分割

---这里先以/拆分一次,然后使用空格再拆分一次

---将通过筛选剔除后,获得正常的用户名:user_

---根据这个用户名当成字典进行SSH爆破

---发现一个用户名和密码:SHayslett

#smbclient访问文件夹

---SMB与CIFS为服务器通信协议,常用于Windows95/98/NT等系统。smbclient(samba client)可让Linux系统存取Windows系统所分享的资源

----显示服务器所有资源,不用输入密码直接回车

---指定路径登陆,发现一个文件和wordpress的源码

---这里可以进行代码审计,---打开发现没有很重要的信息

##Linux永恒之蓝漏洞

---搜索关键词:searchsploit Samba

--查看提示需要用到MSF(CVE-2017-7094)

---影响范围:所有介于 Samba ~ 之间的版本,(.10/版本)不受影响

---msf尝试搜索永恒之蓝模块

---直接提权成功

##知识点总结

---主机发现、端口扫描、端口版本扫描

---匿名登陆、80端口页面获取用户名

---访问DNS的666端口,下载文件,file识别文件,unzip解压文件

---、exiftool、strings查看图片隐藏文件

---、dirb扫描Web敏感目录,AWVS、Xray、WpScan扫描漏洞

---的disable-tls-checks绕过https,-e u 枚举用户名,-e u -P指定字典爆破用户密码

---的wp_content目录存在文件路径泄露,大部分高危漏洞在插件里面

---的advanced_video插件文件包含漏洞,$image_data = file_get_contents($thumb)读取传参内容,然后读取网站的Config文件获取数据库用户名和密码(也可以读取/etc/passwd和/etc/shadow)

---代码,绕过HTTPS协议

---9.根据root和密码远程登陆mysql,获取用户名和密码

---和cut命令对于每行打印进行拆分

---11.也可以基于收集的用户名和密码,爆破ssh、ftp、mysql

---12.文件上传获取WebShell:weevely,,php/meterpreter_reverse_tcp,mysql INTO OUT文件上传(写)

---信息枚举:1)Linux version )存在一些账户信息:peter存在sudo提权3)ssh:PermitEmptyPasswords yes(允许空密码登陆)4) path可写入:/usr/local/sbin/

---14提权:Linux的内核|版本提权、ssh爆破+sudo提权、MySQL的UDF提权、计划任务提权(/etc//logrotate,/var/log/cronlog)、Linux永恒之蓝提权

---命令登陆访问samba,enum4linux -a枚举samba信息

关键词:

最新新闻
回顶部