##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信息
关键词: