首页 > 其他分享 >渗透测试--危险协议集合

渗透测试--危险协议集合

时间:2024-11-13 22:19:55浏览次数:3  
标签:14.128 10.129 -- 用户 渗透 集合 服务器 YES SMB

FTP协议

        FTP协议有多种泄露信息的途径:

1.anonymous登录,上传下载文件

2.Wireshark抓取FTP的数据包,并还原传输内容。

FTP协议设置        

 cat /etc/vsftpd.conf | grep -v "#"

FTP禁用用户列表

 cat /etc/ftpusers

危险参数

递归显示

ftp> ls -R

下载文件 

ftp> get Important\ Notes.txt

下载所有文件 

[!bash!]$ wget -m --no-passive ftp://anonymous:[email protected]

上传文件 

ftp> put testupload.txt 

FTP端口搜集信息

发现FTP

        该方法会自动执行NSE

[!bash!]$ sudo nmap -sV -p21 -sC -A 10.129.14.136

发现NSE中FTP有关插件 

        使用nmap的NSE扫描可以快速确定ftp服务

##更新nmap NSE库
[!bash!]$ sudo nmap --script-updatedb

##查找NSE有关ftp的插件
find /usr/ -type f -name ftp* 2>/dev/null | grep scripts

FTP使用了SSL情况

        当FTP使用ssl,情况会变得很不一样。我们需要用以下方式完成交互。虽然变麻烦了,但同时我们拿到了SSL证书,它会非常有用。

[!bash!]$ openssl s_client -connect 10.129.14.136:21 -starttls ftp

SMB 协议

Server Message BlockSMB) 是一种客户端-服务器协议,用于规范对文件和整个目录以及其他网络资源(例如打印机、路由器或为网络发布的接口)的访问。

SMB版本

SMB 版本支持特征
互联网金融Windows NT 4.0通过 NetBIOS 接口进行通信
SMB 1.0Windows 2000通过 TCP 直接连接
SMB 2.0Windows Vista、Windows Server 2008性能升级、改进的消息签名、缓存功能
SMB 2.1Windows 7、Windows Server 2008 R2锁定机制
SMB 3.0Windows 8、Windows Server 2012多通道连接、端到端加密、远程存储访问
SMB 3.0.2Windows 8.1,Windows Server 2012 R2
SMB 3.1.1Windows 10、Windows Server 2016完整性检查,AES-128加密

SMB的配置

 cat /etc/samba/smb.conf | grep -v "#\|\;" 
环境描述
[sharename]网络共享的名称。
workgroup = WORKGROUP/DOMAIN客户查询时会出现的工作组。
path = /path/here/授予用户访问权限的目录。
server string = STRING当发起连接时将显示的字符串。
unix password sync = yes将 UNIX 密码与 SMB 密码同步?
usershare allow guests = yes是否允许未经身份验证的用户访问定义的共享?
map to guest = bad user当用户登录请求与有效的 UNIX 用户不匹配时该怎么办?
browseable = yes该股票是否应显示在可用股票列表中?
guest ok = yes允许不使用密码连接服务吗?
read only = yes只允许用户读取文件吗?
create mask = 0700新创建的文件需要设置什么权限?

 SMB的危险配置

环境描述
browseable = yes允许列出当前共享中的可用共享吗?
read only = no禁止创建和修改文件?
writable = yes允许用户创建和修改文件?
guest ok = yes允许不使用密码连接服务吗?
enable privileges = yes是否尊重分配给特定 SID 的特权?
create mask = 0777必须为新创建的文件分配什么权限?
directory mask = 0777必须为新创建的目录分配哪些权限?
logon script = script.sh用户登录时需要执行什么脚本?
magic script = script.sh当脚本关闭时应该执行哪个脚本?
magic output = script.out魔法脚本的输出需要存储在哪里?

SMB链接

smbclient -N -L //10.129.14.128
smbclient L //10.129.14.128 -U xxx

smbclient //192.168.1.10/shared_folder -U user1

smbclient //10.129.14.128/notes

SMB下载文件

smb: \> get prep-prod.txt 

SMB执行系统命令

 SMB中只要在指令钱加上!就可以执行系统命令。

smb: \> !ls
smb: \> !cat prep-prod.txt

SMB状态查看

smb可以查看当前主机和其他主机的联系情况。

root@samba:~# smbstatus

SMB收集信息

nmap NSE

nmap是一个收集的好办法,但是nmap的效率是十分有限的。所以建议还是手动收集

sudo nmap 10.129.14.128 -sV -sC -p139,445

 rpcclient

rpcclient为我们提供了许多不同的请求,我们可以使用这些请求在 SMB 服务器上执行特定功能来获取信息。

##链接smb
rpcclient -U "" 10.129.14.128
询问描述
srvinfo服务器信息。
enumdomains枚举网络中部署的所有域。
querydominfo提供已部署域的域、服务器和用户信息。
netshareenumall枚举所有可用的共享。
netsharegetinfo <share>提供有关特定共享的信息。
enumdomusers枚举所有域用户。
queryuser <RID>提供有关特定用户的信息。

rpcclient用户枚举 

        再次我们可以获得用户的RID和组的RID

<span style="background-color:#141d2b"><span style="color:#a4b1cd"><code class="language-shell-session"><span style="color:#a4b1cd">rpcclient </span><span style="color:#ff8484"><strong>$</strong></span><span style="color:#5cb2ff">></span> enumdomusers

user:[mrb3n] rid:[0x3e8]
user:[cry0l1t3] rid:[0x3e9]


<span style="color:#a4b1cd">rpcclient </span><span style="color:#ff8484"><strong>$</strong></span><span style="color:#5cb2ff">></span> queryuser 0x3e9

        User Name   :   cry0l1t3
        Full Name   :   cry0l1t3
        Home Drive  :   \\devsmb\cry0l1t3
        Dir Drive   :
        Profile Path:   \\devsmb\cry0l1t3\profile
        Logon Script:
        Description :
        Workstations:
        Comment     :
        Remote Dial :
        Logon Time               :      Do, 01 Jan 1970 01:00:00 CET
        Logoff Time              :      Mi, 06 Feb 2036 16:06:39 CET
        Kickoff Time             :      Mi, 06 Feb 2036 16:06:39 CET
        Password last set Time   :      Mi, 22 Sep 2021 17:50:56 CEST
        Password can change Time :      Mi, 22 Sep 2021 17:50:56 CEST
        Password must change Time:      Do, 14 Sep 30828 04:48:05 CEST
        unknown_2[0..31]...
        user_rid :      0x3e9
        group_rid:      0x201
        acb_info :      0x00000014
        fields_present: 0x00ffffff
        logon_divs:     168
        bad_password_count:     0x00000000
        logon_count:    0x00000000
        padding1[0..7]...
        logon_hrs[0..21]...</code></span></span>

 rpcclient组信息获取

        从用户详细信息获得的用户组ID可以帮助我们判断用户的权限。

        querygroup 0x201

        Group Name:     None
        Description:    Ordinary Users
        Group Attribute:7
        Num Members:2</code></span></span>

暴力破解用户RID 

由于有时候权限会被限制,导致我们无法正常访问这些功能。但queryuser <RID> 一般是被允许的,所以我们可以连接后直接使用这个接口,从而完成爆破。

for i in $(seq 500 1100);do rpcclient -N -U "" 10.129.14.128 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";done

为什么爆破的是500-1100的RID的用户? 

常见的 RID 范围说明

  1. 500:
    这是 Windows 系统内置管理员账户的 RID。它通常标识内置的 Administrator 账户。

  2. 501:
    这是来宾账户(Guest)的 RID。一般用于访客用户,权限通常较低。

  3. 512-514:
    这些值通常用来标识特定的组,例如 Domain Admins、Domain Users 和 Domain Guests。

  4. 1000 及以上的 RID:
    用户在系统中创建的本地用户账户或域用户通常从 1000 开始分配。因此,当扫描 500-1100 范围时,你会覆盖到常见的系统账户和较低编号的用户账户。

samrdump

samrdump.py 是一个用于枚举和收集与 Windows 安全账户管理器 (SAM) 相关信息的脚本,通常用于渗透测试和安全研究中。

samrdump.py 10.129.14.128

主要功能

  • 用户和组枚举samrdump.py 可以连接到远程 Windows 主机并通过 SAMR(Security Account Manager Remote)协议来枚举用户、组以及相关的权限信息。
  • 远程账户信息收集:通过利用 SAMR 接口,samrdump.py 可以从目标机器中提取账户和组的列表,这些信息可能包括用户名、RID(相对标识符)等。
  • 基于网络的操作:通常,它是通过与目标机器的网络通信来收集这些信息,而无需本地访问,这使得它在远程渗透测试中特别有用。

SMBmap 

 SMBmap 是一个用于扫描和枚举远程服务器上 SMB(Server Message Block)共享资源的工具。

smbmap -H [目标IP地址]

smbmap -H [目标IP] -u [用户名] -p [密码]

主要功能

  • 枚举 SMB 共享SMBmap 可以列出目标服务器上所有可访问的共享资源,并显示有关它们的详细信息(如读/写权限)。
  • 访问文件和目录:允许你递归地查看共享目录中的文件和子目录,还可以显示其访问权限。
  • 上传和下载文件:可以上传或下载文件到指定的共享位置,用于测试和验证权限。
  • 执行命令:在适当的权限下,SMBmap 甚至可以在目标系统上远程执行命令。
  • 支持身份验证:支持使用用户名和密码进行身份验证(如果需要访问受保护的共享)。
  • 权限评估:帮助测试人员评估 SMB 共享的读写权限,确定敏感数据可能的泄漏点。

CrackMapExec 

CrackMapExec (简称 CME) 是一个强大的网络渗透测试工具,专门设计用于在大规模网络环境中测试和管理 Windows/Active Directory 网络。

主要功能

  • SMB 协议测试CrackMapExec 主要用来测试 SMB 服务的安全性,支持认证尝试、密码喷洒和凭据测试。它可以快速识别网络中的 SMB 共享并列出其权限。
  • Active Directory 枚举:支持对 Active Directory 域用户、组和权限的枚举,有助于深入了解目标网络的结构和用户信息。
  • 凭据管理和利用:CME 支持利用密码哈希(例如 NTLM 哈希)进行认证和访问,甚至在不需要明文密码的情况下进行操作(Pass-the-Hash 攻击)。
  • 远程命令执行:在具备合适权限的情况下,可以远程在目标机器上执行命令或脚本。
  • 支持多协议:除了对 SMB 的强大支持外,CrackMapExec 还支持 RDP(远程桌面协议)、WinRM(Windows 远程管理)等多种协议,允许用户在大范围内测试和管理 Windows 机器。
  • 集成模块:CME 具备模块化的功能,可以扩展并执行更多复杂的任务,如 Mimikatz 集成用于提取凭据、Kerberos 票据利用等。

Enum4Linux-ng 

        Linux快速信息搜集工具。

git clone https://github.com/cddmp/enum4linux-ng.git
cd enum4linux-ng
pip3 install -r requirements.txt

./enum4linux-ng.py 10.129.14.128 -A

NFS协议 

Network File SystemNFS) 是 Sun Microsystems 开发的网络文件系统,其用途与 SMB 相同。其目的是通过网络访问文件系统,就像访问本地文件系统一样。 

NFS配置

选项描述
rw读写权限。
ro只读权限。
sync同步数据传输。(速度稍慢)
async异步数据传输。(速度稍快)
secure1024 以上的端口将不会被使用。
insecure将使用 1024 以上的端口。
no_subtree_check该选项禁用子目录树的检查。
root_squash将根 UID/GID 0 的文件的所有权限分配给匿名的 UID/GID,从而阻止root访问 NFS 挂载上的文件。

NFS危险的配置 

选项描述
rw读写权限。
insecure将使用 1024 以上的端口。
nohide如果在导出目录下安装了另一个文件系统,则该目录将通过其自己的导出条目导出。
no_root_squash所有由 root 创建的文件都保留 UID/GID 0。

NFS信息搜集 

nmap NSE

sudo nmap 10.129.14.128 -p111,2049 -sV -sC

sudo nmap --script nfs* 10.129.14.128 -sV -p111,2049

展现NFS共享文件夹

showmount -e 10.129.14.128

 将NFS共享文件夹绑定于本地

mkdir target-NFS
sudo mount -t nfs 10.129.14.128:/ ./target-NFS/ -o nolock
cd target-NFS
tree .

卸载NFS共享文件夹 

sudo umount ./target-NFS

DNS协议

        DNS协议会暴露很多内网域名和域名IP映射关系。这对于我们确定目标非常有效。

DNS记录类型

DNS 记录描述
A返回请求域的 IPv4 地址作为结果。
AAAA返回请求域的 IPv6 地址。
MX返回负责的邮件服务器。
NS返回域的 DNS 服务器 (名称服务器)。
TXT此记录可以包含各种信息。例如,可以使用全能型工具来验证 Google Search Console 或验证 SSL 证书。此外,还设置了 SPF 和 DMARC 条目来验证邮件流量并保护其免受垃圾邮件的侵害。
CNAME此记录用作另一个域名的别名。如果您希望域名 www.hackthebox.eu 指向与 hackthebox.eu 相同的 IP,则需要为 hackthebox.eu 创建 A 记录,并为 www.hackthebox.eu 创建 CNAME 记录。
PTRPTR 记录的工作方式相反(反向查找)。它将 IP 地址转换为有效的域名。
SOA提供有关相应 DNS 区域和管理联系人的电子邮件地址的信息。

 DNS服务器配置

        DNS配置文件主要有以下3个:

  • named.conf.local
  • named.conf.options
  • named.conf.log 
root@bind9:~# cat /etc/bind/named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "domain.com" {
    type master;
    file "/etc/bind/db.domain.com";
    allow-update { key rndc-key; };
};

DNS服务器区域文件 

         简而言之,所有的正向记录都按照 BIND 格式输入,这允许 DNS 服务器识别 IP 地址所对应的域名、主机名和角色。简单来说,这就像是 DNS 服务器用于查找域名地址的电话簿

cat /etc/bind/db.domain.com

DNS服务器反查域名文件

cat /etc/bind/db.10.129.14

 DNS服务器危险配置

选项描述
allow-query定义哪些主机被允许向 DNS 服务器发送请求。
allow-recursion定义哪些主机被允许向 DNS 服务器发送递归请求。
allow-transfer定义哪些主机被允许从 DNS 服务器接收区域传输。
zone-statistics收集区域的统计数据。

DNS信息搜集

DNS ns查询 

dig ns <domain> @<dns server ip>

dig ns inlanefreight.htb @10.129.14.128

DNS 版本查询 


dig CH TXT version.bind <dns_server_ip>

dig CH TXT version.bind 10.129.120.85

DNS any查询

dig any inlanefreight.htb @10.129.14.128

 DNS AXFR区域传输

dig axfr inlanefreight.htb @10.129.14.128

dig axfr internal.inlanefreight.htb @10.129.14.128

子域名暴力破解 

for sub in $(cat /opt/useful/seclists/Discovery/DNS/subdomains-top1million-110000.txt);do dig $sub.inlanefreight.htb @10.129.14.128 | grep -v ';\|SOA' | sed -r '/^\s*$/d' | grep $sub | tee -a subdomains.txt;done


dnsenum --dnsserver 10.129.14.128 --enum -p 0 -s 0 -o subdomains.txt -f /opt/useful/seclists/Discovery/DNS/subdomains-top1million-110000.txt inlanefreight.htb

SMTP协议

        SMTP被攻破会导致发送电子邮件,并且枚举SMTP用户。有趣的是,SMTP的用户通常为域账号,所以他变得非常有用。

 SMTP配置

cat /etc/postfix/main.cf | grep -v "#" | sed -r "/^\s*$/d"

smtpd_banner = ESMTP Server 
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
<span style="color:#a4b1cd">smtp_tls_session_cache_database = btree<span style="color:#a4b1cd">:</span></span><span style="color:#ff8484"><strong>$</strong></span><span style="color:#a4b1cd">{</span>data_directory<span style="color:#a4b1cd">}</span>/smtp_scache
myhostname = mail1.inlanefreight.htb
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtp_generic_maps = hash:/etc/postfix/generic
<span style="color:#a4b1cd">mydestination = </span><span style="color:#ff8484"><strong>$</strong></span>myhostname, localhost 
<span style="color:#a4b1cd">masquerade_domains = </span><span style="color:#ff8484"><strong>$</strong></span>myhostname
mynetworks = 127.0.0.0/8 10.129.0.0/16
mailbox_size_limit = 0
recipient_delimiter = +
smtp_bind_address = 0.0.0.0
inet_protocols = ipv4
smtpd_helo_restrictions = reject_invalid_hostname
home_mailbox = /home/postfix</code></span></span>

SMTP使用

命令描述
AUTH PLAINAUTH 是用于验证客户端的服务扩展。
HELO客户端使用其计算机名称登录并开始会话。
MAIL FROM客户端指定电子邮件发件人。
RCPT TO客户指定电子邮件收件人的姓名。
DATA客户端启动电子邮件的传输。
RSET客户端中止已发起的传输,但保持客户端和服务器之间的连接。
VRFY客户端检查邮箱是否可用于传输消息。
EXPN客户端还会使用此命令检查邮箱是否可用于发送消息。
NOOP客户端向服务器请求响应,以防止由于超时而断开连接。
QUIT客户端终止会话。

验证用户

        但这并非总是有效,SMTP会返回不存在的用户。

<span style="background-color:#141d2b"><span style="color:#a4b1cd"><code class="language-shell-session">[!bash!]<span style="color:#ff8484"><strong>$</strong></span> telnet <span style="color:#ffaf00">10.129</span>.14.128 <span style="color:#ffaf00">25</span>

Trying 10.129.14.128...
Connected to 10.129.14.128.
Escape character is '^]'.
220 ESMTP Server 

VRFY root

252 2.0.0 root


VRFY cry0l1t3

252 2.0.0 cry0l1t3


VRFY testuser

252 2.0.0 testuser


VRFY aaaaaaaaaaaaaaaaaaaaaaaaaaaa

252 2.0.0 aaaaaaaaaaaaaaaaaaaaaaaaaaaa</code></span></span>

发送电子邮件

<span style="background-color:#141d2b"><span style="color:#a4b1cd"><code class="language-shell-session">[!bash!]<span style="color:#ff8484"><strong>$</strong></span> telnet <span style="color:#ffaf00">10.129</span>.14.128 <span style="color:#ffaf00">25</span>

Trying 10.129.14.128...
Connected to 10.129.14.128.
Escape character is '^]'.
220 ESMTP Server


EHLO inlanefreight.htb

250-mail1.inlanefreight.htb
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING


MAIL FROM: <[email protected]>

250 2.1.0 Ok


RCPT TO: <[email protected]> NOTIFY=success,failure

250 2.1.5 Ok


DATA

354 End data with <CR><LF>.<CR><LF>

From: <[email protected]>
To: <[email protected]>
Subject: DB
Date: Tue, 28 Sept 2021 16:32:51 +0200
Hey man, I am trying to access our XY-DB but the creds don't work. 
Did you make any changes there?
.

250 2.0.0 Ok: queued as 6E1CF1681AB


QUIT

221 2.0.0 Bye
Connection closed by foreign host.</code></span></span>

SMTP危险配置 

开放中继配置

mynetworks = 0.0.0.0/0

通过此设置,此 SMTP 服务器可以发送虚假电子邮件,从而初始化多方之间的通信。另一种攻击可能性是伪造电子邮件并阅读它。

SMTP信息搜集

Nmap NSE

sudo nmap 10.129.14.128 -p25 --script smtp-open-relay -v

smtp-user-enum 用户名枚举

smtp-user-enum -M VRFY -U /home/kali/Desktop/HTB/footprinting-wordlist.txt -t  10.129.75.47

IMAP/POP3协议

        借助Internet Message Access ProtocolIMAP),可以从邮件服务器访问电子邮件。与Post Office ProtocolPOP3) 不同,IMAP 允许直接在服务器上在线管理电子邮件,并支持文件夹结构。另一方面,POP3 不具备与 IMAP 相同的功能,它仅提供在电子邮件服务器上列出、检索和删除电子邮件的功能。因此,必须使用诸如 IMAP 之类的协议来实现其他功能,例如直接在邮件服务器上使用分层邮箱、在会话期间访问多个邮箱以及预先选择电子邮件。

        IMAP/POP3协议,可以帮助我们读取用户的邮箱内容,翻企业邮箱通常可能有些意想不到的收获。

IMAP命令

命令描述
1 LOGIN username password用户的登录名。
1 LIST "" *列出所有目录。
1 CREATE "INBOX"创建具有指定名称的邮箱。
1 DELETE "INBOX"删除邮箱。
1 RENAME "ToRead" "Important"重命名邮箱。
1 LSUB "" *active从用户已声明为或 的名称集合中返回名称子集subscribed
1 SELECT INBOX选择一个邮箱以便可以访问邮箱中的消息。
1 UNSELECT INBOX退出选定的邮箱。
1 FETCH <ID> all检索与邮箱中的消息相关的数据。
1 FETCH <ID> BODY[]检索与邮箱中的消息详细内容
1 CLOSE删除所有设置了标志的消息Deleted
1 LOGOUT关闭与 IMAP 服务器的连接。

POP3命令

命令描述
USER username识别用户。
PASS password使用密码对用户进行身份验证。
STAT向服务器请求已保存的电子邮件数量。
LIST向服务器请求所有电子邮件的数量和大小。
RETR id请求服务器通过 ID 传递所请求的电子邮件。
DELE id请求服务器通过ID删除请求的电子邮件。
CAPA请求服务器显示服务器功能。
RSET请求服务器重置传输的信息。
QUIT关闭与 POP3 服务器的连接。

IMAP/POP3 危险配置

环境描述
auth_debug启用所有身份验证调试日志记录。
auth_debug_passwords此设置可调整日志详细程度、提交的密码以及记录的方案。
auth_verbose记录不成功的身份验证尝试及其原因。
auth_verbose_passwords用于身份验证的密码会被记录,并且可能会被截断。
auth_anonymous_username这指定使用匿名 SASL 机制登录时要使用的用户名。

IMAP/POP3信息搜集 

Nmap NSE

sudo nmap 10.129.14.128 -sV -p110,143,993,995 -sC

curl

curl -k 'imaps://10.129.14.128' --user user:p4ssw0rd

curl -k 'imaps://10.129.14.128' --user cry0l1t3:1234 -v

Openssl

openssl s_client -connect 10.129.14.128:pop3s

openssl s_client -connect 10.129.14.128:imaps

SNMP协议

        SNMP协议是简单的网络管理协议,但这个协议中会包含一些敏感信息。我们需要特别注意STRING字段,很有可能会出现惊喜。

 SNMP配置信息

cat /etc/snmp/snmpd.conf | grep -v "#" | sed -r '/^\s*$/d'

SNMP危险配置

设置描述
rwuser noauth无需身份验证即可访问完整 OID 树。
rwcommunity <community string> <IPv4 address>无论请求从何处发送,都可以访问完整的 OID 树。
rwcommunity6 <community string> <IPv6 address>rwcommunity与使用 IPv6 的访问方式相同,不同之处在于。

 SNMP信息搜集

snmpwalk 搜集信息

snmpwalk -v2c -c public 10.129.14.128

onesixtyone 爆破社区口令搜集信息

onesixtyone -c /opt/useful/seclists/Discovery/SNMP/snmp.txt 10.129.14.128

braa提取敏感信息 

braa <community string>@<IP>:.1.3.6.*
braa [email protected]:.1.3.6.*

10.129.14.128:20ms:.1.3.6.1.2.1.1.1.0:Linux htb 5.11.0-34-generic #36~20.04.1-Ubuntu SMP Fri Aug 27 08:06:32 UTC 2021 x86_64
10.129.14.128:20ms:.1.3.6.1.2.1.1.2.0:.1.3.6.1.4.1.8072.3.2.10
10.129.14.128:20ms:.1.3.6.1.2.1.1.3.0:548
10.129.14.128:20ms:.1.3.6.1.2.1.1.4.0:[email protected]
10.129.14.128:20ms:.1.3.6.1.2.1.1.5.0:htb
10.129.14.128:20ms:.1.3.6.1.2.1.1.6.0:US
10.129.14.128:20ms:.1.3.6.1.2.1.1.7.0:78

为什么使用 .1.3.6.* 爬取信息?

  1. 涵盖重要的管理对象.1.3.6.* 是标准 SNMP 对象的主要根路径,它包含了所有网络管理相关的信息,如设备信息、接口信息、协议状态等。大多数常用的MIB(管理信息库)对象,例如 systeminterfacesip 等,都在这个子树中。
  2. 广泛的适用性:在大多数网络设备中,所有标准的MIB变量都位于这个树下。因此,使用 .1.3.6.* 作为扫描或爬取对象,可以获取广泛的设备状态和信息。
  3. 管理信息的标准化:所有符合SNMP标准的设备制造商都会将标准对象放置在 .1.3.6.* 的分支中,这使得管理系统可以统一地访问设备的信息。厂家私有的OID通常会在这个基础上进一步扩展,具有唯一性。
  4. 获取系统信息的常见策略:例如,系统描述(sysDescr)位于 .1.3.6.1.2.1.1.1,而设备的接口信息则在 .1.3.6.1.2.1.2 下。通过爬取 .1.3.6.*,您可以很容易获得设备的基本信息和各种接口状态。

Mysql协议

        Mysql登录成功后则可以挖掘所有数据库内容。并且可以做到文件上传,或者RCE。

Mysql危险配置

设置描述
user设置 MySQL 服务将以哪个用户身份运行。
password设置 MySQL 用户的密码。
admin_address在管理网络接口上侦听 TCP/IP 连接的 IP 地址。
debug此变量指示当前的调试设置
sql_warnings此变量控制单行 INSERT 语句是否在出现警告时生成信息字符串。
secure_file_priv此变量用于限制数据导入和导出操作的影响。

Mysql信息搜集

Nmap NSE

sudo nmap 10.129.14.128 -sV -sC -p3306 --script mysql*

登录mysql的搜集命令

命令描述
mysql -u <user> -p<password> -h <IP address>连接到 MySQL 服务器。'- p' 标志和密码之间不应有空格。
show databases;显示所有数据库。
use <database>;选择其中一个现有数据库。
show tables;显示所选数据库中所有可用的表。
show columns from <table>;显示所选数据库中的所有列。
select * from <table>;显示所需表中的所有内容。
select * from <table> where <column> = "<string>";string在所需表中搜索所需内容。

 MSSQL协议

        暴露后泄露数据

MSSQL数据结构

默认系统数据库描述
master跟踪 SQL 服务器实例的所有系统信息
model模板数据库充当每个新创建的数据库的结构。在模型数据库中更改的任何设置都将反映在对模型数据库进行更改后创建的任何新数据库中
msdbSQL Server 代理使用此数据库来安排作业和警报
tempdb存储临时对象
resource包含 SQL Server 附带的系统对象的只读数据库

 MSSQL危险配置

  • MSSQL clients not using encryption to connect to the MSSQL server

  • The use of self-signed certificates when encryption is being used. It is possible to spoof self-signed certificates

  • The use of named pipes

  • Weak & default sa credentials. Admins may forget to disable this account

MSSQL信息搜集

 Nmap NSE

sudo nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config,ms-sql-ntlm-info,ms-sql-tables,ms-sql-hasdbaccess,ms-sql-dac,ms-sql-dump-hashes --script-args mssql.instance-port=1433,mssql.username=sa,mssql.password=,mssql.instance-name=MSSQLSERVER -sV -p 1433 10.129.201.248

MSF ping MSSQL

msf6 auxiliary(scanner/mssql/mssql_ping) > set rhosts 10.129.201.248

rhosts => 10.129.201.248


msf6 auxiliary(scanner/mssql/mssql_ping) > run

MSSQL sa无法登录问题

        有时候我们在获取了mssql的sa账户和密码,但是却无法通过远程管理工具登录。这个原因是mssql采用了混合认证模式。在混合认证模式下,我们只能在使用管理员权限的情况下登录mssql。当我们碰到这种情况,可以想办法使用3389远程桌面以登录,或者使用runas工具。

​​​​​​​runas /user:<ServerName>\Administrator "ssms.exe"

Oracle TNS协议

         它已成为医疗保健、金融和零售行业管理大型复杂数据库的首选解决方案。此外,其内置的加密机制可确保传输数据的安全性,使其成为数据安全至关重要的企业环境的理想解决方案。

        Oracle 数据库和mysql相同,会导致读写文件和密码泄露

Oracle配置文件

        Oracle TNS 的配置文件称为tnsnames.oralistener.ora,在$ORACLE_HOME/network/admin目录中。

Tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.129.11.102)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

Listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PDB1)
      (ORACLE_HOME = C:\oracle\product\19.0.0\dbhome_1)
      (GLOBAL_DBNAME = PDB1)
      (SID_DIRECTORY_LIST =
        (SID_DIRECTORY =
          (DIRECTORY_TYPE = TNS_ADMIN)
          (DIRECTORY = C:\oracle\product\19.0.0\dbhome_1\network\admin)
        )
      )
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = orcl.inlanefreight.htb)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
环境描述
DESCRIPTION提供数据库名称及其连接类型的描述符。
ADDRESS数据库的网络地址,包括主机名和端口号。
PROTOCOL与服务器通信所用的网络协议
PORT与服务器通信使用的端口号
CONNECT_DATA指定连接的属性,例如服务名称或 SID、协议和数据库实例标识符。
INSTANCE_NAME客户端想要连接的数据库实例的名称。
SERVICE_NAME客户端想要连接的服务的名称。
SERVER用于数据库连接的服务器类型,例如专用或共享。
USER用于与数据库服务器进行身份验证的用户名。
PASSWORD用于与数据库服务器进行身份验证的密码。
SECURITY连接的安全类型。
VALIDATE_CERT是否使用 SSL/TLS 验证证书。
SSL_VERSION用于连接的 SSL/TLS 版本。
CONNECT_TIMEOUT客户端与数据库建立连接的时间限制(以秒为单位)。
RECEIVE_TIMEOUT客户端从数据库接收响应的时间限制(以秒为单位)。
SEND_TIMEOUT客户端向数据库发送请求的时间限制(以秒为单位)。
SQLNET.EXPIRE_TIME客户端检测连接的时间限制(以秒为单位)已失败。
TRACE_LEVEL数据库连接的跟踪级别。
TRACE_DIRECTORY存储跟踪文件的目录。
TRACE_FILE_NAME跟踪文件的名称。
LOG_FILE存储日志信息的文件。

Oracle信息搜集

odat安装方法

sudo apt-get install libaio1 python3-dev alien -y
git clone https://github.com/quentinhardy/odat.git
cd odat/
git submodule init
git submodule update
wget https://download.oracle.com/otn_software/linux/instantclient/2112000/instantclient-basic-linux.x64-21.12.0.0.0dbru.zip
unzip instantclient-basic-linux.x64-21.12.0.0.0dbru.zip
wget https://download.oracle.com/otn_software/linux/instantclient/2112000/instantclient-sqlplus-linux.x64-21.12.0.0.0dbru.zip
unzip instantclient-sqlplus-linux.x64-21.12.0.0.0dbru.zip
export LD_LIBRARY_PATH=instantclient_21_12:$LD_LIBRARY_PATH
export PATH=$LD_LIBRARY_PATH:$PATH
pip3 install cx_Oracle
sudo apt-get install python3-scapy -y
sudo pip3 install colorlog termcolor passlib python-libnmap
sudo apt-get install build-essential libgmp-dev -y
pip3 install pycryptodome

 Nmap

sudo nmap -p1521 -sV 10.129.204.235 --open

Nmap 暴力破解SID

sudo nmap -p1521 -sV 10.129.204.235 --open --script oracle-sid-brute

ODAT爆破

./odat.py all -s 10.129.204.235

 登录Oracle

sqlplus scott/[email protected]/XE

##报错解决办法
sudo sh -c "echo /usr/lib/oracle/12.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf";sudo ldconfig

Oracle数据库交互

用户权限&权限提升&所有表格

###展示所有表
SQL> select table_name from all_tables;

TABLE_NAME
------------------------------
DUAL
SYSTEM_PRIVILEGE_MAP
TABLE_PRIVILEGE_MAP
STMT_AUDIT_OPTION_MAP
AUDIT_ACTIONS
WRR$_REPLAY_CALL_FILTER
HS_BULKLOAD_VIEW_OBJ
HS$_PARALLEL_METADATA
HS_PARTITION_COL_NAME
HS_PARTITION_COL_TYPE
HELP

...SNIP...

###显示用户权限
SQL> select * from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SCOTT                          CONNECT                        NO  YES NO
SCOTT                          RESOURCE                       NO  YES NO

###权限提升
sqlplus scott/[email protected]/XE as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Mon Mar 6 11:32:58 2023
Version 21.4.0.0.0

Copyright (c) 1982, 2021, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

###展示用户权限
SQL> select * from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SYS                            ADM_PARALLEL_EXECUTE_TASK      YES YES NO
SYS                            APEX_ADMINISTRATOR_ROLE        YES YES NO
SYS                            AQ_ADMINISTRATOR_ROLE          YES YES NO
SYS                            AQ_USER_ROLE                   YES YES NO
SYS                            AUTHENTICATEDUSER              YES YES NO
SYS                            CONNECT                        YES YES NO
SYS                            CTXAPP                         YES YES NO
SYS                            DATAPUMP_EXP_FULL_DATABASE     YES YES NO
SYS                            DATAPUMP_IMP_FULL_DATABASE     YES YES NO
SYS                            DBA                            YES YES NO
SYS                            DBFS_ROLE                      YES YES NO

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SYS                            DELETE_CATALOG_ROLE            YES YES NO
SYS                            EXECUTE_CATALOG_ROLE           YES YES NO

提取密码hash 

SQL> select name, password from sys.user$;

NAME                           PASSWORD
------------------------------ ------------------------------
SYS                            FBA343E7D6C8BC9D
PUBLIC
CONNECT
RESOURCE
DBA
SYSTEM                         B5073FE1DE351687
SELECT_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
OUTLN                          4A3BA55E08595C81
EXP_FULL_DATABASE

NAME                           PASSWORD
------------------------------ ------------------------------
IMP_FULL_DATABASE

文件上传

./odat.py utlfile -s 10.129.204.235 -d XE -U scott -P tiger --sysdba --putFile C:\\inetpub\\wwwroot testing.txt ./testing.txt

[1] (10.129.204.235:1521): Put the ./testing.txt local file in the C:\inetpub\wwwroot folder like testing.txt on the 10.129.204.235 server                                                                                                  
[+] The ./testing.txt file was created on the C:\inetpub\wwwroot directory on the 10.129.204.235 server like the testing.txt file

 IPMI协议

IPMI)是一套标准化的规范,用于基于硬件的主机管理系统,用于系统管理和监控。它充当一个自主子系统,独立于主机的 BIOS、CPU、固件和底层操作系统工作。IPMI 使系统管理员能够管理和监控系统,即使系统已关闭或处于无响应状态。它使用与系统硬件的直接网络连接运行,不需要通过登录 shell 访问操作系统。IPMI 还可用于远程升级系统,而无需物理访问目标主机。IPMI 通常以三种方式使用:

  • 在操作系统启动之前修改 BIOS 设置
  • 当主机完全断电时
  • 系统故障后访问主机

 IPMI 通过端口 623 UDP 进行通信。我们在内部渗透测试中经常看到的最常见的 BMC 是 HP iLO、Dell DRAC 和 Supermicro IPMI。

        IPMI协议如果采用RAKP协议,那么则会泄露登录账户的密码hash。

IPMI危险配置

        如果默认凭据无法访问 BMC,我们可以转向IPMI 2.0 中的 RAKP 协议中的缺陷。在身份验证过程中,服务器会在进行身份验证之前将用户密码的加盐 SHA1 或 MD5 哈希发送到客户端。可以利用此漏洞获取 BMC 上任何有效用户帐户的密码哈希。然后可以使用Hashcat模式的字典攻击离线破解这些密码哈希7300。如果 HP iLO 使用出厂默认密码,我们可以使用此 Hashcat 掩码攻击命令hashcat -m 7300 ipmi.txt -a 3 ?1?1?1?1?1?1?1?1 -1 ?d?u,该命令会尝试所有大写字母和数字的组合来获取八个字符的密码。

IPMI信息搜集

默认账密

ProductUsernamePassword
Dell iDRACrootcalvin
HP iLOAdministratorrandomized 8-character string consisting of numbers and uppercase letters
Supermicro IPMIADMINADMIN

nmap

sudo nmap -sU --script ipmi-version -p 623 ilo.inlanfreight.local

MSF扫描

msf6 > use auxiliary/scanner/ipmi/ipmi_version 
msf6 auxiliary(scanner/ipmi/ipmi_version) > set rhosts 10.129.42.195
msf6 auxiliary(scanner/ipmi/ipmi_version) > show options 

Module options (auxiliary/scanner/ipmi/ipmi_version):

   Name       Current Setting  Required  Description
   ----       ---------------  --------  -----------
   BATCHSIZE  256              yes       The number of hosts to probe in each set
   RHOSTS     10.129.42.195    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT      623              yes       The target port (UDP)
   THREADS    10               yes       The number of concurrent threads


msf6 auxiliary(scanner/ipmi/ipmi_version) > run

 MSF dump哈希

        BMC的hash是可以被获取的,如果这个密码被用于其他服务器,那么就会造成其他服务器的沦陷。

sf6 > use auxiliary/scanner/ipmi/ipmi_dumphashes 
msf6 auxiliary(scanner/ipmi/ipmi_dumphashes) > set rhosts 10.129.42.195
msf6 auxiliary(scanner/ipmi/ipmi_dumphashes) > show options 

Module options (auxiliary/scanner/ipmi/ipmi_dumphashes):

   Name                 Current Setting                                                    Required  Description
   ----                 ---------------                                                    --------  -----------
   CRACK_COMMON         true                                                               yes       Automatically crack common passwords as they are obtained
   OUTPUT_HASHCAT_FILE                                                                     no        Save captured password hashes in hashcat format
   OUTPUT_JOHN_FILE                                                                        no        Save captured password hashes in john the ripper format
   PASS_FILE            /usr/share/metasploit-framework/data/wordlists/ipmi_passwords.txt  yes       File containing common passwords for offline cracking, one per line
   RHOSTS               10.129.42.195                                                      yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT                623                                                                yes       The target port
   THREADS              1                                                                  yes       The number of concurrent threads (max one per host)
   USER_FILE            /usr/share/metasploit-framework/data/wordlists/ipmi_users.txt      yes       File containing usernames, one per line



msf6 auxiliary(scanner/ipmi/ipmi_dumphashes) > run

SSH协议

        SSH多么美妙的协议,功能是啥咱就不多赘述了

SSH危险配置

环境描述
PasswordAuthentication yes允许基于密码的身份验证。
PermitEmptyPasswords yes允许使用空密码。
PermitRootLogin yes允许以 root 用户身份登录。
Protocol 1使用过时的加密版本。
X11Forwarding yes允许 GUI 应用程序进行 X11 转发。
AllowTcpForwarding yes允许转发 TCP 端口。
PermitTunnel允许隧道传输。
DebianBanner yes登录时显示特定横幅。

SSH信息搜集

 Nmap

nmap --script ssh* -sV -p22 <ip>

SSH连接

ssh -i private.key <user>@<FQDN/IP>Log in to the SSH server using private key.
ssh <user>@<FQDN/IP> -o PreferredAuthentications=passwordEnforce password-based authentication

Rsync枚举共享卷

        该协议是SSH的一个文件共享协议,这个协议会暴露给我们可以访问的共享文件。

nc -nv 127.0.0.1 873

Rsync 枚举共享卷内容

rsync -av --list-only rsync://127.0.0.1/dev

R-services信息搜集

         R-services是一个古老的协议,用于unix,开放端口为512,513,514。其功能和ssh类似,也是提供远程控制的能力。
       

容易被滥用的端口和命令

命令服务守护进程港口传输协议描述
rcprshd514TCP将文件或目录从本地系统双向复制到远程系统(反之亦然),或从一个远程系统复制到另一个远程系统。其工作原理类似于cpLinux 上的命令,但提供no warning to the user for overwriting existing files on a system
rshrshd514TCP无需登录过程即可打开远程计算机上的 shell。依靠/etc/hosts.equiv.rhosts文件中的受信任条目进行验证。
rexecrexecd512TCP使用户能够在远程计算机上运行 shell 命令。需要通过使用username和通过未加密的网络套接字进行身份验证。身份验证被和文件password中的受信任条目覆盖。/etc/hosts.equiv.rhosts
rloginrlogind513TCP使用户能够通过网络登录到远程主机。其工作原理与telnetUnix 类主机类似,但只能连接到此类主机。身份验证被/etc/hosts.equiv.rhosts文件中的受信任条目所覆盖。

 Nmap

sudo nmap -sV -p 512,513,514 10.0.17.2

RDP信息搜集

Nmap

 nmap -sV -sC 10.129.201.248 -p3389 --script rdp*

RDP安全检查

git clone https://github.com/CiscoCXSecurity/rdp-sec-check.git && cd rdp-sec-check
./rdp-sec-check.pl 10.129.201.248

启用RDP会话

xfreerdp /u:cry0l1t3 /p:"P455w0rd!" /v:10.129.201.248

WinRM信息搜集

Nmap

nmap -sV -sC 10.129.201.248 -p5985,5986 --disable-arp-ping -n

 Windows使用WinRM

Powershell

Linux使用WinRM

evil-winrm -i 10.129.201.248 -u Cry0l1t3 -p P455w0rD!

WMI信息搜集

 Windows 管理规范 ( WMI) 是 Microsoft 的实现,也是通用信息模型 ( CIM) 的扩展,是WBEMWindows 平台标准化基于 Web 的企业管理 ( ) 的核心功能。WMI 允许对 Windows 系统上的几乎所有设置进行读写访问。

连接WMI

/usr/share/doc/python3-impacket/examples/wmiexec.py Cry0l1t3:"P455w0rD!"@10.129.201.248 "hostname"

标签:14.128,10.129,--,用户,渗透,集合,服务器,YES,SMB
From: https://blog.csdn.net/weixin_44368093/article/details/143725463

相关文章

  • aider: 一个 terminal 中的开源 AI 编程助手 & benchmark
    1.AIpairprogramminginterminalaiderGitHub可自由配置任意的LLM接口功能:接收需求:Addnewfeaturesortestcases.Describeabug.PasteinanerrormessageororGitHubissueURL.Refactorcode.Updatedocs.修改代码文件自动执行gitcommits并携带......
  • 计算机网络 实验三 常用网络管理命令(二)
    一、实验目的    掌握常用网络管理命令应用。二、实验原理    一般网络管理命令的原理就是在建立连接通道,然后发送一些测试数据包,对方接受后返回信息,而这个返回数据包包含一些网络状况的相关信息。常用的网络管理命令有netstat 命令、arp命令、tracert命令......
  • nfs服务器之间实现目录共享
    title:nfs服务器之间实现目录共享date:2022-11-0522:41:54tags:[nfs,文件共享]categories:linux在使用airflow的时候,scheduler和worker之间的dag文件需要保持一致,而airflow没有解决这个问题,所以,需要我们自己解决dag文件的同步问题。第一个解决方案就是云服务商提供的nas......
  • 11.13机器学习_KNN和模型选择调优
    7特征降维实际数据中,有时候特征很多,会增加计算量,降维就是去掉一些特征,或者转化多个特征为少量个特征特征降维其目的:是减少数据集的维度,同时尽可能保留数据的重要信息。特征降维的好处:减少计算成本:在高维空间中处理数据可能非常耗时且计算密集。降维可以简化模型,......
  • 【打破传统授信模型:基于深度神经网络 DNN模型的精确授信额度计算方法】-附完整python
    打破传统授信模型:基于深度神经网络DNN模型的精确额度计算方法模型结构概览数据预处理1.导入必要的库2.加载数据3.数据预处理4.构建深度神经网络模型5.模型训练与调参6.模型评估7.可视化训练过程9.完整代码深度神经网络(DeepNeuralNetwork,DNN),该模型通过K......
  • nfs服务器之间实现目录共享_netapp nfs挂载共享目录某个文件夹给服务器
    title:nfs服务器之间实现目录共享date:2022-11-0522:41:54tags:[nfs,文件共享]categories:linux在使用airflow的时候,scheduler和worker之间的dag文件需要保持一致,而airflow没有解决这个问题,所以,需要我们自己解决dag文件的同步问题。第一个解决方案就是云服务商提供的nas......
  • 《MYSQL45讲》误删数据怎么办
    对误删数据分类的话,有1.delete误删行2.droptable或者truncatetable语句误删表3.使用dropdatabase误删数据库4.使用rm命令误删整个MYSQL实例一,误删行一下操作前置条件是:binlog的格式是row,并且binglog_row_image是FULL,表示记录数据修改前后完整信息。如何恢复使......
  • nfs服务器之间实现目录共享1313
    title:nfs服务器之间实现目录共享date:2022-11-0522:41:54tags:[nfs,文件共享]categories:linux在使用airflow的时候,scheduler和worker之间的dag文件需要保持一致,而airflow没有解决这个问题,所以,需要我们自己解决dag文件的同步问题。第一个解决方案就是云服务商提供的nas......
  • 和电脑“聊天”:用 cin 和 cout 实现输入与输出
    在编程中,我们经常需要和电脑“对话”:输入一些信息,让程序做点事情,然后输出结果。这就像和电脑“聊天”,而C++提供了两个关键字来帮助我们实现这个互动——cin和cout。今天就来聊聊这两个超级实用的工具,看看它们是怎么让你和电脑进行“交流”的!cout:让电脑“说话”cout是......
  • 基于springboot的教室预约与管理系统
    收藏关注不迷路!!......