一次简单但又完整的先拿shell后提权的经历
- 格式:docx
- 大小:231.95 KB
- 文档页数:4
MySQL提权之udf提权(获得webshell的情况)什么是udf提权?MySQL提供了⼀个让使⽤者⾃⾏添加新的函数的功能,这种⽤户⾃⾏扩展函数的功能就叫udf。
它的提权原理也⾮常简单!即是利⽤了root ⾼权限,创建带有调⽤cmd的函数的udf.dll动态链接库!这样⼀来我们就可以利⽤ system权限进⾏提权操作了!当我们拿到webshell后,由于中间件,例如,apache使⽤了较低的权限,可能仅仅是个⽹络服务的权限,然后我们就需要进⾏提权,⽽有时候⽬标机器补丁较全,各种系统提权姿势都失效的情况下,可以将⽬光转义到数据库服务上,在Windows下,在较低版本的mysql(<5.6)安装时默认是系统权限。
还有就是很多⼈图⽅便,例如使⽤了各种集成环境,未做安全设置,直接⽤⾼权限账户进⾏站点配置,就可以考虑⽤UDF进⾏提权。
dll⽂件的好处?1.扩展了应⽤程序的特性;2.可以⽤许多种编程语⾔来编写;3.简化了软件项⽬的管理;4.有助于节省内存;5.有助于资源共享;什么是udf库?UDF表⽰的是MySQL中的⽤户⾃定义函数。
这就像在DLL中编写⾃⼰的函数并在MySQL中调⽤它们⼀样。
我们将使⽤“lib_mysqludf_sys_64.dll”DLL 库不同版本的区别:MySql < 4.1:允许⽤户将任何的DLL⽂件⾥⾯的函数注册到MySql⾥。
MySql 4.1-5.0:对⽤来注册的DLL⽂件的位置进⾏了限制,通常我们选择 UDF导出到系统⽬录C:/windows/system32/来跳过限制。
MySql >=5.1:这些DLL只能被放在MySql的plugin⽬录下。
0x01 提权的前提1. 必须是root权限(主要是得创建和抛弃⾃定义函数)2. secure_file_priv=(未写路径)3. 将udf.dll⽂件上传到MySQL的plugin⽬录下(这⾥以MySQL>=5.1为例)0x02 开始提权这⾥以本地为例1.我们这⾥上传了⼀句话,然后⽤菜⼑连接上先判断数据库版本select version();符合MySql>=5.1的情况。
目录1、进shell检查权限 (1)2、扫端口 (1)3、43958 开了 (2)4、1433开了得到dbo权限 (2)5、找到Serv-U目录无法访问 (3)6、尝试mysql提权 (3)7、尝试su提权 (4)8、SU提权 (5)9、总结 (5)1、进shell检查权限首先这个是看到坛子里面的一个求助提权贴提权的,以前在hake发过,但没这么详细溜达进shell看了下子。
aspx支持的完好,不过权限还是比较低的。
IISSPY可以完美跨目录,那么提权还是有大大的希望的。
2、扫端口127.0.0.1 : 21 ................................. Open127.0.0.1 : 25 ................................. Open127.0.0.1 : 80 ................................. Open127.0.0.1 : 110 ................................. Open127.0.0.1 : 1433 ................................. Open127.0.0.1 : 1723 ................................. Close127.0.0.1 : 3306 ................................. Open127.0.0.1 : 3389 ................................. Open127.0.0.1 : 4899 ................................. Close127.0.0.1 : 5631 ................................. Close127.0.0.1 : 43958 ................................. Open127.0.0.1 : 65500 ................................. Close3、43958 开了那就来试试把。
说到花了九牛二虎的力气获得了一个webshell,当然还想继续获得整个服务器的admin权限,正如不想得到admin的不是好黑客~嘻嘻~~好跟我来,看看有什么可以利用的来提升权限第一如果服务器上有装了pcanywhere服务端,管理员为了管理方便也给了我们方便,到系统盘的Documents and Settings/All Users/Application Data/Symantec/pcAnywhere/中下载*.cif本地破解就使用pcanywhere连接就ok了第二有很多小黑问我这么把webshell的iis user权限提升一般服务器的管理都是本机设计完毕然后上传到空间里,那么就会用到ftp,服务器使用最多的就是servu那么我们就利用servu来提升权限通过servu提升权限需要servu安装目录可写~好开始把,首先通过webshell访问servu安装文件夹下的ServUDaemon.ini把他下载下来,然后在本机上安装一个servu把ServUDaemon.ini放到本地安装文件夹下覆盖,启动servu添加了一个用户,设置为系统管理员,目录C:\,具有可执行权限然后去servu安装目录里把ServUDaemon.ini更换服务器上的。
用我新建的用户和密码连接~好的,还是连上了ftpftp>open ipConnected to ip.220 Serv-U FTP Server v5.0.0.4 for WinSock ready...User (ip:(none)): id //刚才添加的用户331 User name okay, please send complete E-mail address as password. Password:password //密码230 User logged in, proceed.ftp> cd winnt //进入win2k的winnt目录250 Directory changed to /WINNTftp>cd system32 //进入system32目录250 Directory changed to /WINNT/system32ftp>quote site exec net.exe user rover rover1234 /add //利用系统的net.exe 文件加用户。
linux shell发展史Linux Shell发展史在计算机领域,操作系统是非常重要的一部分,它可以管理计算机硬件和软件资源,为用户和应用程序提供一个运行环境。
操作系统提供了很多不同的接口,其中之一就是Shell。
Shell是一个命令行解释器,它使用户能够与操作系统交互,并执行命令和任务。
本文将详细介绍Linux Shell的发展史,从诞生的起源到现在广受欢迎的Bash Shell,逐步回答你关于Shell发展的问题。
一、早期操作系统的命令行接口在早期的计算机操作系统中,命令行是主要的用户接口。
用户通过键盘输入命令,计算机处理后执行相应的操作。
这些命令通常是针对硬件直接的指令,比如读取磁碟、写入内存等。
这种接口非常原始,需要用户有底层的计算机知识,对于普通用户来说非常不友好。
二、Unix Shell的出现1969年,AT&T贝尔实验室的肯·汤普森、丹尼斯·里奇等人开发了Unix 操作系统。
他们设计了一种新的操作方式,称之为“shell”。
区别于早期的命令行接口,Unix Shell提供了一个更友好和易用的用户界面。
它能够解析用户输入的命令,并将其传递给操作系统执行。
在Unix系统中,Shell是用户与操作系统之间的桥梁。
三、Bourne Shell的诞生在Unix系统中,第一个广泛使用的Shell是Bourne Shell(sh)。
它由肯·汤普森在1979年开发。
Bourne Shell提供了很多强大的功能,比如命令扩展、I/O 重定向、管道等。
这些功能使得Shell脚本编程成为可能,可以将一系列的命令组合成脚本文件,并通过Shell执行。
四、C Shell和Korn Shell的出现在Bourne Shell之后,出现了更多的Shell变种,比如C Shell(csh)和Korn Shell(ksh)。
C Shell由比尔·乔伊在1978年开发,基于C语言的语法,引入了一些新特性,比如命令历史、命令别名等。
Shell指令常见的使用案例1. 简介Shell是一种命令行解释器,主要用于在操作系统上执行用户命令。
通过Shell指令,我们可以控制计算机进行各种操作。
本文将详细介绍Shell指令的常见使用案例,包括文件操作、系统管理、进程控制、管道和重定向、文本处理等方面。
2. 文件操作文件操作是Shell指令最常见的使用场景之一。
下面是一些常用的文件操作指令案例:2.1 创建目录使用mkdir指令可以创建一个新的目录。
例如,要在当前目录下创建一个名为“test”的目录,可以执行以下指令:mkdir test2.2 切换目录使用cd指令可以切换当前工作目录。
例如,要进入“test”目录,可以执行以下指令:cd test2.3 列出文件使用ls指令可以列出当前目录下的文件和子目录。
例如,要列出当前目录下的所有文件和子目录,可以执行以下指令:ls2.4 复制文件使用cp指令可以复制文件。
例如,要将一个名为“file1”的文件复制到“test”目录下,可以执行以下指令:cp file1 test/2.5 删除文件使用rm指令可以删除文件。
例如,要删除一个名为“file1”的文件,可以执行以下指令:rm file13. 系统管理Shell指令还可以用于系统管理任务,如用户管理、权限管理等。
下面是一些常用的系统管理指令案例:3.1 添加用户使用useradd指令可以添加一个新用户。
例如,要添加一个名为“user1”的用户,可以执行以下指令:useradd user13.2 删除用户使用userdel指令可以删除一个用户。
例如,要删除一个名为“user1”的用户,可以执行以下指令:userdel user13.3 修改文件权限使用chmod指令可以修改文件的权限。
例如,要将一个名为“file1”的文件设置为所有者可读、写和执行,其他用户只有读权限,可以执行以下指令:chmod u=rwx,g=r,o=r file13.4 查看系统信息使用uname指令可以查看系统的一些基本信息。
从简单shell到突破360+天网提权Author:BlackeagleBlog:事情是这样子的。
同地不同校的站,检测了一次又一次,还有漏洞。
尼玛,这管理员太不负责了,伤不起。
(虽然我认识。
)大一的时候就检测过~拿了shell就没再干啥(多么天真+纯洁)后来管理员修复了,然后又R。
从织梦cms入手,最后到了一个密码是1的shell。
(后来小A告诉他也是从这里入手的我茫然了。
)其实这种后台也是有注入的。
/admin/login.asp为神马我就不会呢,还望基友指点。
然后有了下文。
进密码为1的那个Webshell网卡,不方便。
一句话进。
看看权限支持aspx,那就传个aspx马儿看看。
先看看进程~果断发现360 以及天网防火墙(pfw.exe)!!!执行命令看看没有回显果断寻找免杀pr 上传之~过了。
呵呵。
执行看看。
Microsoft Windows XP [版本5.2.3790]没权限,肿么办?求解。
小A说他一个一个找的,翻到了sa的帐号密码,我咋就没有呢。
(提权一定要有恒心啊)翻翻IIS去database试了试,不行。
继续。
功夫不负有心人~server=localhost;UID=sa;PWD=xxoo;database=syjj;Provider=SQLOLEDB果断连接之~建立帐号360突破简单,直接/ad就过了。
天网呢?我愁。
喝点咖啡。
想想~因为我们已经拿到了sa直接关了试试。
发现这个,果断点了。
嘿嘿,RP好,不过如果没有kill,又该如何去突破呢?问问。
不过估计他睡了~因为前面看到了链接扫4430端口开着的。
链接之。
最后感谢小A哈~还是你细心。
最最后弱弱问一句,.net建的站,为毛访问aspx页面不卡,访问asp页面就特别卡啊?。
目标网站:/先来判断他是不是钓鱼网站,用站长工具查询了下,网站没有备案(就像汽车没有牌照),机房在美国。
108.171.247.59[美国加利福尼亚州洛杉矶县沃尔纳特市Psychz网络公司] [同IP网站3个] [响应时间: 1秒752毫秒就能判断他是非法网站了。
在来看下我们红盟:有备案,服务器在国内,所以是正规网站。
非法钓鱼网站都是没有备案的,服务器都不会在国内的。
先来判读下此非法网站架设环境Server: Microsoft-IIS/6.0得到一条有用的信息IIS6.0IIS6.0 环境一般都是Windows2003现在可以找Windows2003服务器系统漏洞,也可以先找网站漏洞。
我们还是一步一步来。
先扫描下服务器开了什么端口开了80 22 3389我们一个一个分析。
80端口http 端口,不开这端口网站也访问不了,网站也没有爆出什么0day,所以放弃22端口22端口就是ssh端口,PcAnywhere建立TCP和这一端口的连接可能是为了寻找ssh。
这一服务有许多弱点。
如果配置成特定的模式,许多使用RSAREF库的版本有不少漏洞。
(建议在其它端口运行ssh)这一服务有许多弱点。
如果配置成特定的模式,许多使用RSAREF库的版本有不少漏洞。
(建议在其它端口运行ssh)还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。
它会扫描整个域的ssh主机。
你有时会被使用这一程序的人无意中扫描到。
用于连接linux 22端口的工具有SSH Secue Shell。
前提是iptable开放了ssh这个服务。
(百度百科到的)百度也没有找到这个端口什么0day。
所以果断放弃3389 远程桌面现在链接试下先按5下shift键盘,看看弹不弹出CMD界面,有没有黑阔来过,说不定留了后门。
没有设置密码,或者密码简单弱口令,这样你就进去了。
当然俺没有这么好的运气,可以试下3389爆破/thread-117711-1-1.html[/url] 具体怎么用教程在这,当然除非运气及好,不然会不成功的,所以俺也没有成功现在我们在找下3389溢出0dayMS12-020: 远程桌面中允许远程执行代码漏洞(不知道百度)2012年爆出漏洞,如果管理员没有打补丁说不定就溢出成功说Windows系统类的!只要开了3389端口!发包速度达到了580左右就能远程溢出增加过管理员帐号!不只是不是真的!到百度找了个MS12-020 溢出工具!本来想增加个管理员进去!可能是发包速度达不到吧!(还是没他们说的那么神奇!能增加管理员帐号!)直接溢出!结果蓝屏重启!我在虚拟机也试过!也是这个样子!直接蓝屏!重启!服务器也是直接蓝屏重启!(如果提权要用到服务器重启这招很不错哦)所以3389没有成功,如果查询到Server: Microsoft-IIS/6.0这样信息,又扫描到没有开3389端口。
.
一次简单但又完整的先拿shell后提权的经历
前一段时间看到了易趣购物网站爆出了注入漏洞,注入的关键字是关键字:
inurl:Price.asp?anid=,结合系统本身的后台数据库备份生成目录可以自定义漏洞,轻松可以通过备份xxx.asp的目录,然后上传后缀为jpg的一句话木马,菜刀连之即可得到shell。
但是如果是这样我也不会再写此文,在这些购物网站中,数据最重要的当属减肥丰胸等等网站数据,而且这些网站在优化seo时,肯定设置的关键字也是减肥丰胸之类,那么中文标题之中必有此关键字,那我的想法就产生了,我的新的注入关键字产生了nurl:Price.asp?anid= intitle:减肥。
啊d扫描注入点,找到一个注入点/Price.asp?anid=xxx,拿去跑表段字段即可,不过也得注意表段是特有的Cnhww。
我一般在渗透的时候,也会用jsky和御剑检测站点,在我查看御剑的结果时发现了一个让我欣喜的结果/shell.asp,明白的一看便知是先人后门,打开发现是一个小马,
(原有小马一被我清除,此图是后来补的),复制大马代码保存,即得到shell。
扫描端口发现,网站开启了
连接3389端口发现可以连接,
尝试简单的命令猜解失败后,决定重新利用shell。
查看服务器所支持的组件:
发现可以支持fso和wscript.shell,欣喜往外,ipconfig,net user都支持,查看了当前的账户,有一个默认的administrator管理账户。
但是net user admin admin /add,没任何反应,net user 发现并没有添加账户成功,这里很纳闷,决定换思路。
把网站翻了个遍,发现了一个数据库的链接文件。
通过代码可知,这里数据库使用了acess和mssql两个,mssql数据库连接账号和密码都已知晓,何不利用数据库连接器试一试,然后兴奋的分别用了MSSQL连接器、SQLTools、SQL查询分析器分离版本,但皆以失败而告终,都拒绝连接不上,看来是防火墙对1433端口做了从外到内的限制,悲哀。
就在这个时候,忽然想起来,啊d等软件在mssql数据库sa权限下,皆有列目录和执行dos的权限,何不试试,然后用啊d 执行命令net user admin admin /add & net localgroup administrators admin /add,但是好久都没回显,很卡的样子,就又换了hdsi,一举成功。
注意这里建立admin是为了方便检测新否已经建立账户,要做一个好的后门,是要做克隆账户的。
心情愉悦的3389连之,为了防止管理员net user查到新建的账户,我建立了隐藏账户,即是admin$,这种账户在cmd中时发现不了的,但是查询用户组还是一览无遗。
我当时没在意觉得没什么,然后速度在日志查看器中删除了所有日志,(这个我也不想,不过好似没法删除单一的登陆记录,请大牛指点指点),正在这时,忽然事件查看器中多了一条登录审核信息,我一看管理员来了,吓得我急忙注销电脑,灰溜溜的跑了。
大约过了1个小时吧,我又重新登录,账号还在,管理员确实很马虎额,不过自己可不能再大意了,遂决定建立克隆账户。
然后就用shell上传aio.exe文件,竟然失败,然后用菜刀上传也是失败,真是无语。
看来是权限不够,忽然想到3389现在不是支持复制粘贴吗?忽然觉得思路就是被逼出来的,
再然后在连接3389时,在选项中选择本地资源,然后再勾选磁盘驱动器,确定即可建立本机和远程服务器的磁盘映射。
上传上了aio.exe, ,然后在cmd命令,将光标调制到aio.exe目录下, 输入Aio.exe -Clone Administrator Guest test 即是用guest克隆Administrator.密码是test,
检测克隆帐户是否成功: Aio.exe -CheckClone
net user 和查看用户组都看不到克隆账户,注销重新登录服务器,用guset 登录,顺利进入系统,进去即发现360提示我的aio.exe是病毒…好在当时上传时候没禁用,这里算是侥幸了,免杀才是王道。
透过这里我们发现,克隆的账户不光隐藏的很深,而且你会发现用户组中自己正在使用的guest账户依然是禁止状态(有红叉显示),最重要的是进入系统的界面、权限和adminitrator完全一样,只是密码不一样罢了。
这种克隆账户的方法目前是最好的方法,但是也不是说无懈可击,可以通过注册表的查阅账户的sid来辨别。
转入正题,速度找到了mssql的目录,找到了数据库,压缩成rar格式,复制打算粘贴到本地,但是电脑卡住了,尝试了好几次皆是如此,网速和pc都不行额,一想可以通过网站下载,遂将数据库文件放到网站某目录中,但是怪异的事情发生了,在url中显示不存在,用菜刀连接网站,也不显示存在此文件,通过shell发现了此文件,但是点击不让下载,说是缺少对象,晕死。
难道在这最重要的时刻要坑爹?脑子不停的旋转,忽的想起可以利用磁盘映射,立即打开我的电脑,在下面打开映射的我的本地硬盘,在两个窗口之间,通过拖曳的方法,终于文件传送启动了,5分钟后,数据库落到了我的硬盘之上。
至此所有的渗透结束了,整个过程其实很简单,但是好多细节要是不注意,就很可能拿不服务器的,真是应了前人说的那句,细心决定渗透成败,而且渗透中的运气也是至关重要。