渗透攻击之信息搜集

一、信息搜集

(1.1)主机发现

Nmap

官网:https://nmap.org/
安装方法
Mac os:brew install nmap
Centos:yum install nmap
Ubuntu:apt-get install nmap
扫描方式
TCP:-sT
SYN:-sS
ACK:-sA
UDP:-sU
RPC:-sR
ICMP:-sP
Disable Port Scan:-sn
常见扫描方案:
扫描端口、操作系统、版本
nmap -T4 -A
版本探测
nmap -sV
操作系统
nmap -O
其他技巧:
–host-timeout主机超时时间,通常选值为:18000
–scan-delay报文时间间隔 通常选值为:1000
-S <源地址>定义扫描源地址,为了不被发现

masscan

项目地址
https://github.com/robertdavidgraham/masscan
安装步骤
sudo apt-get install git gcc make libpcap-dev
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
(该工具兼容nmap的参数)
高级选项
masscan --ports 1-10000 192.168.145.129 --adapter-ip 192.168.145.1
–adapter-ip指定发包的IP地址
–adapter-port指定发包的源端口
–adapter-mac指定发包的源Mac地址
–router-mac 指定网关的Mac地址
–exclude IP地址范围黑名单,防止masscan扫描
–excludefile 指定IP地址范围黑名单文件
–includefile,-iL 读取一个范围列表进行扫描
–wait 指定发送完包之后的等待时间,默认为10秒

nbtscan

一般kali linux中原本存在
示例
nbtscan -r 192.168.1.0/24
#扫描整个c段
nbtscan 192.168.1.10-129
#扫描一个范围
nbtscan -v -s : 192.168.1.0/24
#以分割显示结果
nbtscan -f
#从文件读取扫描范围

hping3

hping3主要测试防火墙的拦截规则,对网络设备进行测试
常见模式
-0 --rawip IP原始报文
-1 --icmp ICMP模式
-2 --udp UDP模式
-8 --scan 扫描模式
-9 --listen 监听模式
hping3 --scan 1-30,70-90 -S 192.168.145.129
#SYN方式扫描主机端口
hping3 -S -a 114.114.114.114 -p 53 114.114.114.114 -c 5
#测试防火墙对CMP包的反应、是否支持traceroute、是否开放某个端口、对防火墙进行拒绝服务攻击(DOS attack)
DRDDOS
hping3 --udp -a 114.114.114.114 -p 53 114.114.114.114 -c 5
基于UDP的DDOS

(1.2)关联信息生成

在渗透前期工作开展之前,需要对目标的各种信息进行分析、拆分、组合。

pydictor

安装
git clone https://github.com/LandGrey/pydictor
生成字典
cd pydictor/ #进入目录
chmod +X pydictor.py #给予执行权限
社会工程学字典
python3 pydictor.py --sedb
合并去重工具
python3 pydictor.py -tool uniqbiner /my/all/dict/
多字典文件组合工具
python3 pydictor.py -tool hybrider heads.txt
some_others.txt tails.txt

(1.3)开放漏洞情报

常用网站
CVE
Exploit-DB
CX Security
CNVD
securitytracker
Search Exploit-DB
搜索Windows提权漏洞
searchsploit -t windows local
搜索Apache漏洞
searchploit -t Apache

(1.4)开源情报信息搜集(OSINT)

搜索引擎语法
百度
谷歌
必应
在线接口
在这里插入图片描述
相关工具
https://github.com/rshipp/awesome-malware-analysis/blob/master/恶意代码软件分析大合集.md#域名解析

(1.5)github hacking

你可以在所有公共Github存储库中搜索以下类型的信息,以及你有权访问的所有私有Github存储库:
Repositories
Topics
Issues and pull requests
Code
Commits
Users
Wikis
可以使用搜索页面或高级搜索页面搜索Github.
可以使用>,>=,<,<=搜索是大于,大于等于,小于,小于等于另外一个值的值。
搜索仓库
在这里插入图片描述
搜索代码
注意事项
只能搜索小于384KB的文件
只能搜索少于500000个文件的存储库
登录的用户可以搜索所有公共存储库
除filename搜索外,搜索源代码时必须至少包含一个搜索词
搜索结果最多可以显示来自同一文件的两个片段,但文件中可能会有更多结果
不能将以下通配符用作搜索查询的一部分:. , : ; / \ ‘ “ = * ! ? # $ & + ^ | - < > ( ) { } [ ]。搜索将忽略这些符号。
日期条件
cats pushed:<2021-07-05 搜索在2021年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的代码
console path:app/public language:javascript 搜索关键字console,且语言为JavaScript,在app/public下的代码
主体搜索
user:USERNAME 用户搜索
org:``ORGNAME 组织搜索
repo:USERNAME/REPOSITORY 指定仓库搜索
文件大小
size:>1000 搜索大小大于1KB的文件
文件名称
filename:config.php language:php 搜索文件名为config.php,且语言为php的代码
扩展名
extension:EXTENSION 指定扩展名搜索
自动化工具
地址:https://hithub.com/UnkL4b/GitMiner
python3 gitminer -v2.0.py -c cookie.txt -q
‘extension:properties jdbc’ -r ‘password(.*)’ -m passwords

(1.6)google hacking

通配符
在这里插入图片描述
高级语法

在这里插入图片描述

(1.7)git all secret

功能描述
克隆多个某组织的public/private仓库并扫描
克隆多个某组织用户的public/private仓库并扫描
克隆一个某组织的public/private仓库并扫描
克隆一个某用户的public/private仓库并扫描
克隆一个某用户的public/secret gist(代码片段管理服务)并扫描
克隆一个某组织团队的仓库并扫描
克隆和扫描GitHub企业仓库还有gists
扫描过程需要借助的开源工具
truffleHog - 扫描高熵值字符串和用户提供的正则表达式
repo-supervisor 扫描在js和json文件中的高熵值字符串
所有工具中的输出文件最终会合并为一个输出文件
docker
运行Git-all-secrets最简便的方式是使用docker
获取docker:apt install docker docker-compose(或者apt install podman-docker)
运行docker run --rm -it abhartiya/tools_gitallsecrets --help 了解不同标志
运行docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<> 扫描组织
运行docker run -it abhartiya/tools_gitallscrets -token=<> * -org=<> -toolName=<> 选择待定工具,toolName=thog or
repo-supervisor
运行docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<> -toolName=thog -thogEntropy truffleHog的默认正则和高熵设置
当容器完成运行,输入docker ps -a 返回容器ID
获得容器ID以后,输入docker cp :/root/results.txt 获取结果文件
标志/选项
-token=Dithub 访问令牌,如果未授权请求Github API会被限速。
-org=组织扫描。它会扫描组织中的所有公共仓库,以及用户的gists.如果你使用的是该组织用户的token,它会克隆并扫描该用户的所有私密gists,以及所有该用户有权限访问的私有仓库。
-user= 用户扫描。它会扫描当前用户的所有仓库和gists,扫描私有仓库请使用scanPrivateReposOnly标志,以及SSHkey。
-repoURL= httpsURL仓库扫描。它只会扫描当前仓库。如果你希望扫描私有仓库,请提供SSH URL和SSHkey,以及scanPrivateReposOnly标志。
-gistURL= httpsURL Gist扫描。它只会扫描Gist。如果你知道私密gist的httpsURL,它也能够访问。
-output=输出结果文件,默认是result.txt。
-cloneForks=这是一个布尔标志。默认设置为0,不克隆forks,如果设置为1,它就会克隆forks。
-orgOnly=这也是一个布尔标志。默认设置为0。如果只扫描组织仓库而不扫描用户的仓库,请将它设置为1。
-toolName= 这是规范扫描工具的标志。默认它使用all,thog和repo-supervisor
-scanPrivateReposOnly=这是规范是否扫描用户私有仓库的标志。它只能工作在user、repoURL、org标志。
-enterpriseURL= 企业GithubURL的标志,如果你希望扫描企业仓库,就选这个。
-threads= 默认线程10。
-thogEntropy=开启高熵提取,默认是false。设置为true会有大量的垃圾信息,在比较大的目标上,不建议开启。如果设置为false,则意味着truffieHog只会提取基于rules.json文件中的正则结果。
-blacklist=不需要扫描的仓库名称,以逗号分隔。
注意事项
Token选项不能为空
Org user repoURL gistURL不能都设置为空,至少需要提供一个选项。如果你提供了多个选项,他的顺序是org>user>repoURL>gistURL。如果你只需要运行在特定用户上,那就不需要提供org选项。
当定义scanPrivateReposOnly标志时:
1.必须将包含SSH-key的卷载入到Docker容器中,使用-v选项。
2.它应该在扫描私有仓库时使用,使用SSH url,而不是https url。
3.确保使用了私有仓库/gist的用户token,否则会报错。
4.如果你想在没有手动干扰的情况下运行,请不要设置SSH key的密钥密码。
当定义teamName标志的时候,提供一个团队成员用户的token非常重要,否则可能会出现意外结果。
当定义enterpriseURL标志的时候,即使你提供了https URL,它也始终会考虑ssh key。所有企业克隆/扫描都是通过ssh url,而不是https url。
综上,请确保使用了SSH key,并且没有设置密钥密码。
扫描私有仓库
扫描私有仓库最稳妥的方法是使用SSHURL克隆。实现这个你需要将SSH key添加到Github用户。
用户配置参考:
https://help.github.com/en/articles/adding-a-new-ssh-key-to-your-github-account
确保这个key没有密码设置。有了SSH key以后,将它挂载到Docker容器中,运行如下命令:
docker run -it -v ~/.ssh/id_rsa_personal:/root/.ssh/id_rsa
abhartiya/tools_gitallsecrets -token=<>
-user=<>-scanPrivateReposOnly or docker run -it -v
~/.ssh/id_rsa_personal:/root/.ssh/id_rsa
abhartiya/tools_gitallsecrets -token=<> -repoURL=<>
-scanPrivateReposOnly将本地的personalSSH-key存储到Docker内部容器/root/.ssh/id_rsa,git-all-secrets会试图通过存储在/root/.ssh/id_rsa的ssh key来克隆仓库。
扫描组织团队
Github API限制了私有仓库环境。尝试使用非管理员用户扫描组织,需要给用户添加仓库的访问权限。如果要扫描组织团队,可以运行: docker run --it -v
~/.ssh/id_rsa_personal:/root/.ssh/id_rsaabhartiya/tools_gitallsecrets -token=<> -org=<>-teamName <>
扫描企业Github
git-all-secrets支持扫描企业仓库,使用enterpriseURL选项
特性
可以添加自己的正则表达式,在docker run的时候使用-v
$(pwd)/rules.json:/root/truffleHog/rules.json。可以使用默认正则表达式,如果需要,也可以用truffleHog提供的高熵字符串。可以通过repo-supervisor工具搜索.js和.json中的高熵字符串。可以搜索用户的Gist,大多数工具都没这个功能。有新工具可以很容易地集成到git-all-secrets。支持扫描企业Github orgs/users/repos/gists。大多数工具只扫描单个仓库,git-all-secrets可以一次扫描多个。

(1.8)Mailsniper.psl获取outlook所有联系人

条件
掌握其中一个用户邮箱的账号密码,并且可以登录outlook
outlook地址可以是官网的也可以是目标自己搭建的
目的
获取目标邮箱里的所有联系人,方便后续爆破弱口令等。
利用
命令
将尝试outlook web access(OWA)和exchange web服务(EWS)的方法。此命令可用于从exchange收集电子邮件列表
目标outlook搭建在自己服务器上
尝试使用传递的账号密码登录目标的outlook,成功登录会把邮件里的联系人都获取下来,并输出保存到文件里。
目标outlook在office365
一样的道理,把Exchhostname指向outlook.office365.com即可,username使用完整的邮箱,而不仅仅是用户名。

(1.9)内网渗透之信息搜集

Windows(工作组和域)

检查当前shell权限
whoami /user && whoami /priv
查看系统信息
systeminfo
主机->扮演的角色
tcp/udp网络连接状态信息
netstat -ano
可以获取内网IP分布状态-服务(redis)
机器名
hostname
查看当前操作系统
wmic OS get Caption,CSDVersion,OSArchitecture,Version
查杀软
WMIC /Namespce:\root\SecurityCenter2 Path
AntivirusProduct Get displapName /Format:List
查看当前安装的程序
wmic product get name,version
查看在线用户
quser
查看网络配置
ipconfig /all
查看进程
tasklist /v
查看当前登录域
net config workstation
远程桌面连接历史记录
cmdkey /1
查看本机上的用户账号列表
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.52.2 返回所有信任
nltest /dsget:hack /server:192.168.52.2 返回域控和其相应的IP地址
net user /do 获取域用户列表
net group “domain admins” /domain 获取域管理员列表
net group “domain controllers” /domain 查看域控制器
net group “domain computers” /domain 查看域机器
net group /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 查询域用户密码过期登信息

linux

查看当前权限
whoami
查看网卡配置
ifconfig
查看端口状态
netstat -anpt
查看进程状态
ps -ef
查看管理员的历史输入命令
history
查找某个文件
find / -name * .cfg

(1.10)渗透信息收集之wmic

首先在cmd命令行输入wmic进入交互式页面
wmic /? 查看wmic命令的全局选项
process /? 进程管理的帮助
wmic process get /? 属性获取操作帮助
以进程为展现wmic的使用
wmic process get caption,executablepath,processid 获取系统当前正在运行的进程
wmic product get name 系统安装软件情况
wmic environment get Description, Variablevalue 系统环境变量
关于powershell的git-wmi对象
首先要知道自己Windows计算机支持那些可用的wmi类
Git-Wmiobject -list 查看支持可用的wmi类
Get-wmiObject Class win32_Process 在本地计算机上获取进程

(1.11)内网常见端口

port:445
SMB(sever message block)Windows协议族,主要功能为文件打印共享服务,该操作为扫描其是否存在MS17-010漏洞,正常情况下,其命令主要是建立IPC服务()
net use \192.168.1.2 空会话
net use \192.168.1.2 /user:a\username password 远程本地认证
net use \192.168.1.2 /user:test\username password 域test.local远程认证
port:137/138/139
netbios端口,137/138为UDP端口,主要用于内网传输文件,而NetBios/SMB服务的获取主要是通过139端口
port:135
该端口主要使用DCOM和RPC服务,该端口主要管理工具的远程操作。
使用时需要开启wmic服务几乎所有的命令都是管理员权限
如果出现“invalid global Switch”,需要使用双引号把该加的地方加上远程系统的本地安全策略的“网络访问:本地账户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”
防火墙最好是关闭状态
port:53
该端口为DNS服务,只要提供域名解析服务使用,该端口在渗透过程中可以寻找一下DNS域传送漏洞,在内网使用DNS协议进行通信传输,隐蔽性更好
port:389
用于LADP(轻量级目录访问协议),属于TCP/IP协议,在域过程中一般出现在域控上出现该端口进行权限认证服务,如果拥有对该域的用户,且担心net或者其他爆破方法不可行的情况,可以尝试使用LADP端口进行爆破。
port:88
该端口主要开启kerberos服务,属于TCP/IP协议,主要任务是监听KDC的票据请求,该协议在渗透过程中可以进行票据的伪造,以横向扩展某些服务。
port:5985
该端口主要介绍winrm服务,winrm允许远程用户使用工具和脚本对Windows服务器进行管理并获取数据。并且winrm服务自Windows vista开始成为Windows的默认组件。
条件:
Windows vista必须手动启动,而Windows server 2008中服务器是默认开启的;
服务器在后台开启,但端口还没有开启监听,所有需要开启端口;
使用winrm quickconfig 对winrm进行配置,开启http和https监听,且需要开启防火墙。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值