红队攻防学习之信息收集
一、信息收集
1、主机发现
nmap
官网: https://nmap.org/
安装系统及命令:
Mac os:
brew install nmap
Centos:
yum install nmap
Ubuntu:
apt一get install nmap
参考手册: https://nmap.org/man/zh/index.html
扫描方式
常见的七种扫描方式:
ТСР: -sT
SYN: -sS
ACK: -sA
UDP: -sU
RPC: -sR
ICMP: -sP
Disable Port Scan: -sn
最常见的这些参数解释:https://blog.csdn.net/liudongdong19/article/details/83506731
常见扫描案例
- 扫描10000端口、操作系统、版本
nmap -T4 -A <target>
- 版本探测
nmap -sV <target>
- 操作系统
nmap -O <target>
- 其他常用技巧:
--host-timeout 主机超时时间 通常选值:18000
--scan-delay 报文时间间隔 通常选值:1000
-s <源地址> 定义扫描源地址,为了不被发现
示例
nmap -V -iR 100000 -PO -p 80
随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因此使用-PO禁止对主机列表。
host -l company.com | cut -d -f 4 | nmap -V -iL -
进行DNS区域传输,以发现company.com中的主机,然后将IP地址提供给Nmap。上述命令用于GNU/Linux —— 其它系统进行区域传输时有不同的命令。
输出
-oN <File>
-oX <XML File>
-oG <filespec>
Grep输出参考:http://www.unspecific.com/nmap-oG-output/
Masscan
项目地址: https://github.com/robertdavidgraham/masscan
安装:
$ sudo apt-get install git gcc make libpcap一dev
$ git clone https://github.com/ rober tdavidgr aham/ masscan
$ cd masscan
$ make
该工具兼容Nmap的参数高级选项
高级选项
命令:sudo masscan --ports 1-10000 192.168.1.101 --adapter-ip 192.168.1.1
- -adapter-ip 指定发包的IP地址
- -adapter-port 指定发包的源端口
- -adapter-mac 指定发包的源MAC地址
- -router-mac 指定网关的MAC地址
- -exclude IP地址范围黑名单,防止masscan扫描
- -excludefile 指定IP地址范围黑名单文件
- -includefile,-iL 读取一个范围列表进行扫描
- -wait 指定发送完包之后的等待时间,默认为10秒
命令:masscan -p 1-65535 192.168.1.101 --rate=100
在网络环境慢的情况下,快速扫描出存在端口与nmap配合
Nbtscan
kali系统自带nbtscan,以及查看帮助说明
ice@iceH:~/Desktop$ whereis nbtscan
nbtscan: /usr/bin/nbtscan /usr/share/man/man1/nbtscan.1.gz
ice@iceH:~/Desktop$ nbtscan
NBTscan version 1.6.
This is a free software and it comes with absolutely no warranty.
You can use, distribute and modify it under terms of GNU GPL 2+.
Usage:
nbtscan [-v] [-d] [-e] [-l] [-t timeout] [-b bandwidth] [-r] [-q] [-s separator] [-m retransmits] (-f filename)|(<scan_range>)
......
示例
nbtscan扫描可以发现主机名、MAC addr等信息…
- 扫描整个C段
nbtscan -r 192.168.1.0/24
- 扫描一个范围
nbtscan 192.168.1.1-100
- 以:分割显示结果
nbtscan -v -s : 192.168.1.0/24
- 从文件读取扫描范围
nbtscan -f <File>
高级用法
sudo nbtscan -v -s ' ' 192.168.1.105
sudo nbtscan -v -s ' ' 192.168.1.105 | awk '{print $1}' | uniq
ice@iceH:~/Desktop$ sudo nbtscan -v -s ' ' 192.168.1.105
192.168.1.105 GOOGLE-28D12ECA 00U
192.168.1.105 GOOGLE-28D12ECA 20U
192.168.1.105 WORKGROUP 00G
192.168.1.105 WORKGROUP 1eG
192.168.1.105 WORKGROUP 1dU
192.168.1.105 __MSBROWSE__ 01G
192.168.1.105 MAC 00:0c:29:f5:84:34
ice@iceH:~/Desktop$ sudo nbtscan -v -s ' ' 192.168.1.105 | awk '{print $1}' | uniq
192.168.1.105
hping3
hping3主要测试防火墙的拦截规则,对网络设备进行测试
常用模式
- -0 -rawip IP原始报文
- -1 -icmp ICMP模式
- -2 -udp UDP模式
- -8 -scan 扫描模式
- -9 -listen 监听模式
SYN方式扫描主机端口
hping3 --scan 445,135 -S 192.168.1.105
可以看到,目标主机回复了: S…A,代表SYN/ACK
测试防火墙对ICMP包的反应、是否支持traceroute、是否开放某个端口、对防火墙进行拒绝服务攻击(DoS attack)。例如,以LandAttack方式测试目标防火墙(Land Attack是将发送源地址设置为与目标地址相同,诱使目标机与自己不停地建立连接)
hping3 -S -a 114.114.114.114 -p 53 114.114.114.114 -c 5
DRDDOS
基于UDP的DOS
hping3 -udp -a 114.114.114.114 -p 53 114.114.114.114 -c 5
参考
http://0daysecurity.com/articles/hping3_examples.html –很详细用法的解释
http://man.linuxde.net/hping3
2、关联信息生成
在渗透前期工作开展之前,需要对目标的各种信息进行分析、拆分、组合
例如:赫尔巴斯亚基国
根据地域习惯、宗教、互联网开放信息等信息进行简要拆分,假设获取的信息如下:
- 当地人爱好吃橙子
- 当地人信奉伊斯兰教
- IPV4地址开放IP段
- 相关社交网络公 开的数据库
根据宗教、习惯、IP地址、 开放数据支持…等,为后续的字典生成、鱼叉、水坑攻击铺下基石
字典生成:pydictor
安装:
git clone https://github.com/LandGrey/pydictor
生成字典
命令:python pydictor.py --sedb
python pydictor.py --sedb
set cname liwei
set sname lw Lwei
set ename zwell
set birth 19880916
set usedpwd liwei123456. liwei@19880916 lw19880916_123
set phone 18852006666
set uphone 15500998080
set hphone 76500100 61599000 01061599000
set email 33125500@qq.com
set email 13561207878@163.com
set email weiweili@gmail.com
set email wei010wei@hotmail.com
set postcode 663321 962210
set nickname zlili
set idcard 152726198809160571
set jobnum 20051230 100563
set otherdate 19591004 19621012
set otherdate 19870906 19880208
set usedchar tiger gof gamesthrones 176003 m0n5ter ppdog
run
合并去重
python pydictor.py -tool uniqbiner /my/all/dict/
多字典文件组合工具
python pydictor.py -tool hybrider heads.txt some_others.txt tails.txt
参考详细:https://github.com/LandGrey/pydictor/blob/master/docs/doc/usage.md
3、开放漏洞情报
常用网站
- CVE:https://cve.mitre.org/
- Exploit-DB:https://www.exploit-db.com/
- CX Security:https://cxsecurity.com/
- CNVD:https://www.cnvd.org.cn/
- securitytracker:https://www.securitytracker.com/
Search Exploit一DB
搜索漏洞
利用 searchsploit apache 5.3.12
,搜索apache漏洞
更新最新exp库
命令:searchsploit -u
4、开源情报信息搜集(OSINT)
搜索引擎语法
在线接口
- http://ce.baidu.com/index/getrelatedsites?site_address=baidu.com
- http://www.webscan.cc/
- http://sbd.ximcx.cn/ –在线子域名查询-接口光速版
- https://censys.io/certificates?q=.example.com
- https://crt.sh/?q=%25.example.com
- https://github.com/c0ny1/workscripts/tree/master/get-subdomain-from-baidu
- https://dnsdumpster.com/ –查询DNS记录、侦查、研究
- https://www.threatcrowd.org/searchApi/v2/domain/report/?domain=baidu.com –和第一个一样
- https://findsubdomains.com/
- https://dnslytics.com/search?g=www.baidu.com –DNSlyrics
- https://pentest-tools.com/information-gathering/find-subdomains-of-domain –DNS攻击面2次免费
- https://viewdns.info/ –功能很多
- https://www.ipneighbour.com/#/lookup/114.114.114.114 –邻居发现
- https://securitytrails.com/list/apex_domain/baidu.com
- https://url.fht.im/
- http://api.hackertarget.com/hostsearch/?q=baidu.com
- http://www.yunsee.cn/finger.html –云悉(限制挺大)
有几个挺好用的,自行挖掘…
相关工具
此网站极力推荐学习!!!
5、Github Hacking
您可以在所有公共GitHub存储库中搜索以下类型的信息,以及您有权访问的所有私有Github存储库
- Repositories
- Topics
- Issues and pull requests
- Code
- Commits
- Users
- Wikis
参考 :
- Searching for repositories
- Searching topics
- Searching code
- Searching commits
- Searching issues and pull requests
- Searching users
- Searching wikis
- Searching in forks
可以使用以上方式搜索
页面或高级搜索
页面搜索Github
您可以使用>
,>=
,<
,和<=
搜索是大于
,大于或等于
,小于
和小于或等于
另一个值的值
下面会介绍如何搜索
搜索仓库
Query | Example |
---|---|
>_n | cats stars:>1000匹配关键字”cats”且star大于1000的仓库 |
>=n | cats topIcs:>=5匹配关键字”cats”且标签数量大于等于5的仓库 |
<_n_ | cats size:<10000匹配关键字”cats”且文件小于10KB的仓库 |
<=_n_ | cats stars:<=50匹配关键字”cats”且star小于等于50的仓库 |
_n_..* | cats stars:10..*匹配关键字”cats”且star大于等于10的仓库 |
*.._n_ | cats stars:*..10匹配关键字”cats”且star小于等于10的仓库 |
n..n | cats stars:10..50匹配关键字”cats”且star大于10且小于50的仓库 |
搜索代码
注意事项
- 只能搜索小于384KB的文件
- 只能搜索少于500,000个文件的存储库,登录的用户可以搜索所有公共存储库
- 除filename搜索外,搜索源代码时必须至少包含一个搜索词。例如,搜索language: Javascript无效,而是这样: amazing language:Javascript
- 搜索结果最多可以显示来自同一文件的两个片段,但文件中可能会有更多结果。您不能将以下通配符用作搜索查询的一部分“.、! “ = * ! ? # $ & + ^ | ~ < > ( ) { } [ ] 搜索将忽略这些符号
日期条件
- cats pushed:<2012-07-05 搜索在2012年07月05日前push代码,且cats作为关键字
- cats pushed:2016-04-30..2016-07-04 日期区间
- cats created:>=2017-04-01 创建时间
逻辑运算
- AND、OR、NOT
排除运算
- cats pushed:<2012-07-05 language:java 搜索在2012年07月05日前push代码,且cats作为关键字,排除java语言仓库
包含搜索
- cats in:file 搜索文件中包含cats的代码
- cats in:path 搜索路径中包含cats的代码
- cats in:path,file搜索路径、文件中包含cats的代码
- cats in:path 搜索路径中包含cats的代码
- console path:app/public language:javascript 搜索关键字 console,且语言为javascript,在app/public下的代码
主体搜索
- user: USERNAME 用户名搜索
- org: ‘’ORGNAME 组织搜索
- repo: USERNAME/REPOSITORY指定仓库搜索
- org: ‘’ORGNAME 组织搜索
文件大小
- size:>1000 搜索大小大于1KB的文件
文件名称
filename:config.php language:php
搜索文件名为config.php
,且语言为php
的代码
搜索Java项目配置文件: mail filename:.properties
扩展名
搜索extension:yaml mongolab.com
中存在的代码信息等
自动化工具
https://github.com/unkl4b/gitmIner
6、google hacking
用法
- Intitle 包含标题
- Intext 包含内容
- filetype 文件类型
- Info 基本信息
- site 指定网站
- inurl 包含某个url
- link 包含指定链接的网页
- cache 显示页面的缓存版本
- numberange搜索一个数字
- Info 基本信息
- filetype 文件类型
- Intext 包含内容
示例
- 搜索目标包含后台的页面
命令:inurl:/admin intext: 后台管理系统
site:"some-keywords.com"intitle: login intext: intext: 管理|后台|登陆|用户名|密码|验证码|系统|帐号| manage|admin|login|system
- 搜索目标是否有目录列表
命令:intext: index of / | ../ | Parent Directory
site:"some-keywords.com" intext: index of / | ../ | Parent Directory
可看到存在目录列表很多url
7、Git-all-secret
略过这个,等有精力再研究
8、mailsniper.ps1获取outlook所有联系人
条件
掌握其中一个用户邮箱的账号密码,并且可以登录outlook
outlook地址可以是官方的也可以是目标自己搭建的,并无影响
目的
获取目标邮箱里的所有联系人,方便后续爆破弱口令等等
利用
命令
将尝试 Outlook Web Access(OWA)
和Exchange Web服务(EWS)
的方法。此命令可用于从Exchange收集电子邮件列表 :
Get-GlobalAddressList -ExchHostname "outlook地址" -UserName "域名/域用户名" -Password "密码" -OutFile global-address-list.txt
可以自己搭建目标outlook在自己服务器上
此处使用klion的域环境模拟
在mailsniper. ps1
最后一行加入以下代码,也可以通过传参的形式调用
Get-GlobalAddressList -ExchHostname mail.domain.com -UserName domain\username -Password Fall2016 -OutFile global-address-list.txt
尝试使用我们传递的账号密码去登录目标的outlook,成功登录后会把邮件里的联系人都获取下来,并输出保存到文件里
目标outlook在Office365
道理也是一样的,把ExchHostname
指向outlook.office365.com
即可,username使用完整的邮箱不要是用户名即可
Get-GlobalAddressList -ExchHostname outlook.office365.com -Username 用户名@邮箱.....
参考链接
- https://www.blackhillsinfosec.com/abusing-exchange-mailbox-permissions-mailsniper/
- https://www.cnblogs.com/backlion/p/6812690.html
工具地址
https://github.com/dafthack/mailsniper
9、内网渗透之信息收集
Windows(工作组和域)
检查当前shell权限
whoami /user & whoami /priv
查看系统信息
收集信息主机名->扮演角色
systeminfo
主机名: WIN-2008
OS 名称: Microsoft Windows Server 2008 R2 Standard
OS 版本: 6.1.7601 Service Pack 1 Build 7601
OS 制造商: Microsoft Corporation
OS 配置: 成员服务器
OS 构件类型: Multiprocessor Free
注册的所有人: Windows 用户
注册的组织:
产品 ID: 55041-628-5044404-84151
初始安装日期: 2020/10/14, 14:31:07
系统启动时间: 2020/11/19, 18:02:28
系统制造商: VMware, Inc.
系统型号: VMware Virtual Platform
系统类型: x64-based PC
处理器: 安装了 1 个处理器。
[01]: Intel64 Family 6 Model 142 Stepping 10 GenuineIntel ~1992 Mhz
BIOS 版本: Phoenix Technologies LTD 6.00, 2020/2/27
Windows 目录: C:\Windows
系统目录: C:\Windows\system32
启动设备: \Device\HarddiskVolume1
系统区域设置: zh-cn;中文(中国)
输入法区域设置: zh-cn;中文(中国)
时区: (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐
物理内存总量: 2,047 MB
可用的物理内存: 1,529 MB
虚拟内存: 最大值: 4,095 MB
虚拟内存: 可用: 3,562 MB
虚拟内存: 使用中: 533 MB
页面文件位置: C:\pagefile.sys
域: secice.cn
登录服务器: \\WIN-2008
修补程序: 安装了 2 个修补程序。
[01]: KB2999226
[02]: KB976902
网卡: 安装了 2 个 NIC。
[01]: Intel(R) PRO/1000 MT Network Connection
连接名: 本地连接
启用 DHCP: 否
IP 地址
[01]: 192.168.3.101
[02]: fe80::15a9:e224:1f9b:336
[02]: Intel(R) PRO/1000 MT Network Connection
连接名: 本地连接 2
启用 DHCP: 是
DHCP 服务器: 192.168.126.254
IP 地址
[01]: 192.168.126.175
[02]: fe80::d1cb:2aa2:fe1f:d647
Tcp/udp 网络连接状态信息
可以获取内网IP分布状态-服务(redis)
netstat -ano
查看机器名
hostname
查看当前操作系统
wmic OS get Caption,CSDVersion,OSArchitecture,Version
ver
查看当前安装的程序
wmic product get name,version
查看在线用户
quser
查看网络配置
有 Primary Dns Suff就说明是域内,空的则当前机器应该在工作组
ipconfig /all
查看进程
有些进程可能是域用户启的->通过管理员权限凭证窃取->窃取域用户的凭证
tasklist /v
查看当前登陆域
net config workstation
远程桌面链接历史记录
可以把凭证取下来->本地解密
cmdkey /l
查看本机上的用户账户列表
net user
查看本机用户xxx的信息
net user xxx
查看本机用户xxx的信息
net user /domain 显示所在域的用户名单
net user 域用户 /domain 获取某个域用户的详细信息
net user /domain xxx 12345678 修改域用户密码,需要域管理员权限
Windows(域)
nltest /domain_trusts /all_trusts /v /server:192.168.126.175 返回所有信任域列表
nltest /dsgetdc:secice /server:192.168.3.101 返回域控和其相应的IP地
net user /do 获取域用户列表
net group /domain 查看域里面的组。
net group "domain computers" /domain 查看域内所有的主机计算机名。
net group "domain admins" /domain 查看域管理员。
net group "domain controllers" /domain 查看域控制器。
net group "enterprise admins" /domain 查看企业管理组。
net localgroup administrators 本机管理员[通常含有域用户]
net localgroup administrators /domain 登录本机的域管理员
net localgroup administrators workgroup\user001 /add 域用户添加到本机
net view 查看同一域内机器列表
net view \\ip 查看某IP共享
net view \\GHQ 查看GHQ计算机的共享资源列表
net view /domain 查看内网存在多少个域
net view /domain:XYZ 查看XYZ域中的机器列表
net accounts /domain 查询域用户密码过期等信息
net time/domain 查看时间服务器。
定位域控IP
1)ipconfig /all 通常域内主机 DNS 地址就是域控地址
2)查看开启 53,389 等端口的主机
3)net time /domain && ping DC.secice.cn
Linux
查看当前权限
whoami
查看网卡配置
ifconfig
查看端口状态(开启了哪些服务,内网IP连接等
netstat -anpt
查看进程状态(开启了哪些服务等)
ps -ef
查看管理员的历史输入命令(获取密码,网站目录,内网资产等信息)
cat /root/.bash_history
查找某个文件(寻找配置文件等)
find / -name *.cfg
10、后渗透信息收集之wmic命令的一些使用方法
前言
wmic和cmd一样在所有的windows版本中都存在,同时wmic有很多cmd下不方便使用的部分,今天给大家介绍一些在后渗透过程中非常适用的使用wmic进行信息收集的命令
关于wmic
WMI命令行(WMIC)实用程序为WMI提供了命令行界面。WMIC与现有的Shell和实用程序命令兼容。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的,WMIC改变了这种情况
wmic的简单使用
首先在cmd命令行输入wmic
进入交互式页面,这里说一下在powershell也可以和cmd命令行一样的操作
/? 查看WMIC命令的全局选项以及命令属性等
process /? 进程管理的帮助
wmic process get /? 属性获取操作帮助
根据实际的需要去对相关的信息进行读取
以进程为例展现wmic的使用
这里的靶机是server 2008
的虚拟机,这里以查看进程为例:
获取系统当前正在运行的进程等信息
wmic process get caption,executablepath,processid
查看服务进程详细信息
wmic service where (state="running") get name ,processid ,pathname ,startmode ,caption
系统安装软件情况
wmic product get name
系统环境变量
wmic environment get Description, VariableValue
关于更多的信息可以通过官方的说明文档
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wmic
关于powershell的Get-Wmi对象
Get-Wmi
是获取Windows Management Instrumentation(WMI)
类的实例或有关可用类的信息。我们需要首先知道自己的 windows计算机支持那些可用的WMI类
Get-Wmiobject -list 自己的windows计算机支持那些可用的WMI类
get-wmiobject
get-wmiobject -class win32_process 在本地计算机上获取进程
具体的参数以及命令在官方文档中进行查询:
11、内网横向常见端口
Port. 445
SMB( Server Message Block) Windows协议族,主要功能为文件打印共享服务,简单来讲就是共享文件夹
该端口也是近年来内网横向扩展中比较火的端口,大名鼎鼎的永恒之蓝漏洞就是利用该端口,操作为扫描其是否存在MS17-010漏洞。正常情况下,其命令主要是建立IPC服务中
空会话
net use \\192.168.1.x
远程本地认证
net use \\192.168.1.2 /user:a\username password
注:a/username 中 a 为工作组情况下的机器命名,可以为任意字符,例如workgroup/username
域 test.local 远程认证
net use \\192.168.1.2 /user:test\username password
Port:137、138、139
NetBios端口,137、138为UDP端口,主要用于内网传输文件,而NetBios/SMB服务的获取主要是通过139端口
Port: 135
该端口主要使用DCOM
和RPC(Remote Procedure Call)
服务,我们利用这个端口主要做WMI(Windows Management Instrumentation)
管理工具的远程操作
- 使用时需要开启wmic服务
- 几乎所有的命令都是管理员权限
- 如果出现 “Invalid Globa| Switch”,需要使用双引号把该加的地方都加上
- 远程系统的本地安全策略的“网络访问:本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
- 防火墙最好是关闭状态
Port: 53
该端口为DNS服务端口,只要提供域名解析服务使用,该端口在渗透过程中可以寻找一下DNS域传送漏洞,在内网中可以使用DNS协议进行通信传输,隐蔽性更加好
参考文章 :
dns隧道之dns2tcp
- https://blog.csdn.net/gsls200808/article/details/50318947
- https://blog.csdn.net/deng_xj/article/details/88834124
dns隧道之unseat2
- https://www.cnblogs.com/bonelee/p/7927706.html
- https://blog.csdn.net/ddr12231/article/details/102306989
Port: 389
用于LADP(轻量级目录访问协议),属于TCP/IP协议,在域过程中一般出现在域控上出现该端口,进行权限认证服务,如果拥有对该域的用户,且担心net或者其他爆破方法不可行的情况,可以尝试使用LADP端口进行爆破
工具可以使用类似于hydra等开源项目
Port: 88
该端口主要开启Kerberos服务,属于TCP/IP协议,主要任务是监听KDC的票据请求,该协议在渗透过程中可以进行黄金票据和白银票据的伪造,以横向扩展某些服务
Port: 5985
该端口主要介绍WinRM服务,WinRM是Windows对WS-Management的实现,WinRM允许远程用户使用工具和脚本对Windows服务器进行管理并获取数据。并且WinRM服务自Windows Vista开始成为Windows的默认组件
条件:
- Windows Vista上必须手动启动,而Windows Server 2008 中服务是默认开启的
- 服务在后台开启,但是端口还没有开启监听,所以需要开启端口
- 使用 winrm quickconfig 对winRM进行配置,开启HTTP和HTTPSS监听,且需要开启防火墙
本文作者: iceH
本文链接: http://www.secice.cn/p/a184e79
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!