帕鲁服务器
新建虚拟机(.vmdk)导入Vmware - 酒大暗 - 博客园 (cnblogs.com)
Login使用root
![[image-20240425195620825.png]]
Linux系统 tcpdump 抓包命令使用教程 - 知乎 (zhihu.com)
tcpdump -XX # 查看以16进制和ASCII吗形式显示每个报文(包含链路层报头)。
![[image-20240425200019920.png]]
flag{Ur_s3rVer_1s_n0w_mY_p4l}
![[image-20240425200240626.png]]
2 溯源#
Vmware虚拟机命令安装 Vmware Tools_sudo apt-get autoremove open-vm-tools sudo apt-get-CSDN博客
sudo apt-get open-vm-tools
sudo apt-get install open-vm-tools-desktop
sudo reboot // 重启电脑
parted扩展磁盘分区(实践篇)_parted分区扩容-CSDN博客
/etc/shadow
文件存在异常
![[image-20240425203231844.png]]
![[image-20240425203930990.png]]
linux.55807
ss命令 如何检查 Debian 上的开放端口 (linux-console.net)
ss -ulp
udp ESTAB 0 0 192.168.47.131:55807 172.67.189.48:31900
1```
traceroute 172.67.189.48
```log
1 _gateway (192.168.47.2) 0.165 ms 0.084 ms 0.056 ms
2 * * *
3 * * *
who-has _gateway
不就是 172.67.189.48 —— 一个美国的节点
所以发包路径是:
graph TD
A[192.168.47.131:55807] --> B[172.67.189.48:31900];
B --> C[192.168.47.1]
ip addr
查看本地ip,即 192.168.47.131
看看这个端口 55807
是哪个程序占用的
lsof -i
![[image-20240425211831893.png]]
46912 -> _gateway:domain
看了下 systemd-resolve
是改 dns 的
优化ubuntu dns解析,关掉systemd-resolved - MR__Wang - 博客园 (cnblogs.com)
cat /etc/resolv.conf
##########################
nameserver 192.168.47.2
search localdomain
Linux配置/etc/resolv.conf详解 - yuhaohao - 博客园 (cnblogs.com)
nameserver 是 dns 服务器
![[image-20240425213705262.png]]
traceroute _gateway
traceroute to _gateway(192.168.47.2)...
所以 dns 把 _gateway
域名解析到了 192.168.47.2
![[image-20240425213943375.png]]
gateway.5335
,看看这个端口
![[image-20240425214117763.png]]
看来就是这个 systemd-resolve
systemd+ 494 0.0 0.6 20824 13040 ? Ss 12:22 0:00 /lib/systemd/systemd-resolved
systemd-resolved --help
/lib/systemd/systemd-resolved [OPTIONS...]
Provide name resolution with caching using DNS, mDNS, LLMNR.
This program takes no positional arguments.
Options:
-h --help Show this help
--version Show package version
--bus-introspect=PATH Write D-Bus XML introspection data
See the systemd-resolved.service(8) man page for details.
apt install net-tools
![[image-20240425221308956.png]]
netstat 命令不显示进程号进程名,只显示横线 '-'_netstat看不到进程名-CSDN博客
尝试把DNS改了
vim /etc/resolv.conf
![[image-20240425225523945.png]]
这个端口
如何在Linux命令行下发送和接收UDP数据包 - whowin - 发表我个人原创作品的技术博客 (gitee.io)
/sbin/init /lib/systemd/systemd-udevd /lib/systemd/systemd-timesyncd /usr/bin/VGAuthService /usr/bin/vmtoolsd
root 732 0.0 0.1 168140 2956 ? S 12:23 0:00 (sd-pam)
直接搜 sd-pam,好像是个挖矿脚本,pid是732
云服务器反黑客入侵攻防实录(一) - 清如许99 - 博客园 (cnblogs.com)
unhide 搜索隐藏进程和 TCP/UDP 端口——通过修改加载的so文件来实现隐藏,待研究实现思路 - bonelee - 博客园 (cnblogs.com)
linux隐藏病毒处理(top查询us占用70%左右,却没有CPU高使用的进程)_top命令us很高但没进程-CSDN博客
重开个虚拟机,扫一下所有程序
Linux Find命令查找指定时间范围内的文件的例子 - 简书 (jianshu.com)
find / -mtime +3 -type f -print # 三天“以前”改过的文件
find / -mtime -3 -type f -print # 三天“内”改过的文件
find / -type f -newermt '2024-2-10' ! -newermt '2024-04-25' # 指定时间
# 时间中的命令:m: Modify c: Change b: Birth a: Access
linux - 查找指定时间的文件及文件中的关键字 - Alive_2020 - 博客园 (cnblogs.com)
find . -type f -ctime -1| xargs ls –l
-type f
指文件ctime
c:change- ctime参数指文件日期等状态性参数修改,mtime参数指内容改变:
![[image-20240426081532493.png]]
stat命令查看详细信息
2024-02-12 到 2024-04-25
![[image-20240426082408119.png]]
find / -name "*.py" | less
![[image-20240426082848009.png]]
find / -type f -newermt '2024-2-11 4:35:00' ! -newermt '2024-04-25' # 有输出
find / -type f -newermt '2024-2-11 4:36:00' ! -newermt '2024-04-25' # 无输出
说明装了Python库之后就没动,没啥关系
从 2024-02-11 5:35:00 开始的
![[image-20240426083732490.png]]
linux挖矿进程,隐藏CPU——用top、ps等命令却一直找不到是哪个进程在占用,todo,待深入 - bonelee - 博客园 (cnblogs.com)
cat /proc/net/udp
![[image-20240426090406089.png]]
#!/bin/bash
# 遍历/proc/下的所有数字文件夹(进程文件夹)
for pid_dir in /proc/[0-9]*/; do
pid=$(basename "$pid_dir") # 提取进程ID
# 检查进程文件夹下的fd子文件夹是否存在
if [ -d "$pid_dir"fd ]; then
# 遍历进程的fd子文件夹中的所有文件
for fd_file in "$pid_dir"fd/*; do
# 检查文件是否是一个socket
if file "$fd_file" | grep -q "socket"; then
# 输出该进程ID(进程号)
echo "Process $pid has a socket open:"
cat "$pid_dir"cmdline # 输出进程的命令行
echo "---"
break # 找到一个socket后就退出当前进程的fd文件夹遍历
fi
done
fi
done
![[image-20240426091635336.png]]
cat /proc/net/udp
看看是哪个端口
![[image-20240426091858039.png]]
本地 99A2(39330) -> 远程 7C9C(31900)
![[image-20240426093945517.png]]
# 添加防火墙
sudo iptables -A INPUT -s 172.67.189.48 -j DROP
尝试建立端口,看看是否被占用
Linux发送udp/tcp包最简单方法-netcat_linux发送udp包-CSDN博客
apt install ncat
nc -v -n -l 192.168.47.131 39330
![[image-20240426095858425.png]]
并没有被占用,奇怪了
试试发包
nc -v 172.67.189.48 31900
试试转发到这个端口
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
sudo iptables -t nat -A PREROUTING -p udp --dport 39330 -j DNAT --to-destination 172.67.189.48:31900
sudo iptables -t nat -A POSTROUTING -p udp -d 172.67.189.48 --dport 31900 -j SNAT --to-source 192.168.47.131:11451
# 查看当前规则
sudo iptables -L -n -t nat
tail -f 文件
改端口了 39304
知道了,尝试连接 nc -v 172.67.189.48 31900
连接超时,所以没有建立连接,所以是看不到进程的,想办法转发一下ip然后搭个服务器
127.0.0.1:39304 -> 172.67.189.48:31900 如何转发这个包到127.0.0.1:11451
![[image-20240426103309485.png]]
gpt
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -N MYCHAIN
iptables -t nat -A OUTPUT -p tcp -s 192.168.47.131 --sport 39304 -d 172.67.189.48 --dport 31900 -j MYCHAIN
iptables -t nat -A MYCHAIN -p tcp -j REDIRECT --to-port 11451
sudo iptables -t nat -L # 查看当前状态
iptables实现IP地址重定向(转发) - EasonJim - 博客园 (cnblogs.com)
iptables -t nat -A OUTPUT -d 172.67.189.48 -p udp --dport 31900 -j DNAT --to-destination 192.168.47.131:11451
删除规则
sudo iptables -t nat -D PREROUTING 1
![[image-20240426105208343.png]]
nc -v -u -l 127.0.0.1 11451
# u 是 udp, l 是 listening
可以,收到了
![[image-20240426105537819.png]]
但是还是看不到进程pwp
![[image-20240426105630807.png]]
192.168.47.132:59471
nc -v -u 172.67.189.48 31900 # udp 连接
测试了一下,udp是可以看到进程的,那就确定,就是程序主动隐藏了进程
![[image-20240426110343134.png]]
尝试遍历所有系统文件,作为file命令的输入,找到这个socket
![[image-20240426111256725.png]]
失败,隐藏了
进程隐藏#
应急响应之Linux下进程隐藏 - FreeBuf网络安全行业门户
![[image-20240426112443007.png]]
screen
Ctrl + A -> Esc
可以阅读模式
(渗透测试后期)Linux进程隐藏详解_linux隐藏进程-CSDN博客
![[image-20240426115521156.png]]
![[image-20240426125635959.png]]
/etc/.resolv.conf.systemd-resolved.bat
技术|如何在 Linux/Unix/Windows 中发现隐藏的进程和端口
![[image-20240426130453454.png]]
![[image-20240426131736249.png]]
strace -o strace_ss.log ss -up
# 看看ss的调用情况
![[image-20240426131752070.png]]
![[image-20240426131856524.png]]
![[image-20240426132013173.png]]
![[image-20240426132606421.png]]
![[image-20240426133510497.png]]
上面这张图片很可疑,似乎是发送了一个包 sendmsg
然后 recvmsg
就收到了上面的本地ip和远程ip,但是pid一个是0一个是636521,直接看proc里面也没有636521
getsockname()函数 Unix/Linux - Unix/Linux系统调用 (yiibai.com)
**int getsockname(int** _s_**, struct sockaddr ***_name_**, socklen_t ***_namelen_**);**
Linux编程之recvmsg和sendmsg函数 - 季末的天堂 - 博客园 (cnblogs.com)
636521
【转】Linux下进程隐藏的常见手法及侦测手段_linux_xian_wwq-GitCode 开源社区 (csdn.net)
专业一点话,使用一些系统完整性检查工具,比如tripwrie、aide等
4.11. 使用 AIDE检查完整性 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
http://127.0.0.1:5244/p/ss
systemctl命令列出所有服务_systemctl list-CSDN博客
systemctl list-units --type=service --state=running
![[image-20240426142723721.png]]
cron 是计时任务,比如每日、每周,似乎也没什么